ios - 使用 CocoaPods 和 SwiftPM 实现的 FBLPromise 崩溃
问题描述
一段时间以来,我们一直在从 CocoaPods 迁移,但并不是每个依赖项都进行了转换。像火力基地。
我有一个关于重复符号的类似问题,但现在我面临一些新问题,这可能是因为我在 SwiftPM 和 CocoaPods 中都使用了依赖项。
运行我的(示例)项目后,它崩溃了:
-[FBLPromise firebaseInstallationID]: unrecognized selector sent to instance 0x600003f5a430
顶部有警告:
objc[93047]: Class FBLPromise is implemented in both
/xxx/SampleProject.app/Frameworks/FBLPromises.framework/FBLPromises (0x10b3f09a8) and
/xxx/SampleProject.app/SampleProject (0x10af736f0).
One of the two will be used. Which one is undefined.
在我更新到 Firebase SDK v6.26.0 之前,我只会收到第一个警告,但自从更新后它崩溃了。
我看到了一个关于如何在库中使用 Firebase的文档和一个关于类似崩溃的GitHub 问题。但是除了降级之外,似乎没有任何方法可以解决此崩溃。
我上传了一个示例项目:https ://github.com/basvankuijck/SampleProjectFirebaseCrash 。
删除 SwiftPM Promises 依赖项不是一种选择,因为实际项目正在使用对 Promises 具有依赖项的 SwiftPM 依赖项。
Podfile没有什么花哨的,SampleProject 只使用一个 SwiftPM 依赖项。
有谁知道如何让 SwiftPM 和 CocoaPods 很好地协同工作,尤其是中间的 Firebase?
解决方案
我在使用 Firebase 和 FBLPromise 时遇到了完全相同的问题。对我来说,这是因为我在 podfile 中添加了 Firebase/FireStore,但其余的 FIrebase 依赖项来自 SPM。在我的其他 SPM 依赖项中,还有 FBLPromise。
要修复它,我必须从 SPM 中删除 FIrebase 包,然后使用 FIrestore 和我可能需要从 Firebase 获得的其他依赖项再次添加它。
没有其他解决方案对我有用。
推荐阅读
- azure - Azure 编排触发器断点未命中
- python - python:如何组织多个相互依赖的类?
- http - 使用什么请求来更新资源而不发送数据
- node.js - node-cron 任务在重新启动服务器后终止
- python - Renaming column in pandas with a multi level index
- reactjs - 这个应用程序中的useObserver 和observer 有什么区别?
- java - 有没有办法在数组中加载多个 fxml,然后在按下按钮而不在 javaFX 中重新加载相同的 fxml 时显示其中一个?
- java - BigInteger 作为中性符号
- php - laravel 中的多级子类别
- android - 成功初始化后在 Android Studio 中访问 FirebaseDatabase 的问题