【问题标题】:FBLPromise crash with CocoaPods and SwiftPM implemented in both使用 CocoaPods 和 SwiftPM 实现的 FBLPromise 崩溃
【发布时间】: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?

【问题讨论】:

标签: ios firebase cocoapods swiftpm


【解决方案1】:

我在使用 Firebase 和 FBLPromise 时遇到了完全相同的问题。对我来说,这是因为我在 podfile 中添加了 Firebase/FireStore,但其余的 FIrebase 依赖项来自 SPM。在我的其他 SPM 依赖项中,还有 FBLPromise。

要修复它,我必须从 SPM 中删除 FIrebase 包,然后使用 FIrestore 和我可能需要从 Firebase 获得的其他依赖项再次添加它。

没有其他解决方案适合我。

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2012-01-25
    • 1970-01-01
    相关资源
    最近更新 更多