【发布时间】:2020-10-09 20:40:45
【问题描述】:
我们已经从 CocoaPods 迁移了一段时间,但并不是每个依赖项都进行了转换。 Like Firebase.
我有一个类似的问题regarding duplicate symbols,但现在我遇到了一些新问题,这可能是因为我在 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 within libraries 的文档和一篇关于类似崩溃的 GitHub issue。但除了降级之外,似乎没有任何方法可以解决此崩溃问题。
我上传了一个示例项目:https://github.com/basvankuijck/SampleProjectFirebaseCrash。
删除 SwiftPM Promises 依赖项不是一种选择,因为实际项目正在使用对 Promises 具有依赖项的 SwiftPM 依赖项。
Podfile 没有什么花哨的,SampleProject 只使用one single SwiftPM dependency。
谁知道如何让 SwiftPM 和 CocoaPods 很好地协同工作,尤其是中间的 Firebase?
【问题讨论】:
-
Firebase 团队的想法github.com/firebase/firebase-ios-sdk/issues/5855
标签: ios firebase cocoapods swiftpm