FirebaseInstanceID 无法使用 cocoapods 正确安装

Posted

技术标签:

【中文标题】FirebaseInstanceID 无法使用 cocoapods 正确安装【英文标题】:FirebaseInstanceID is not installing properly with cocoapods 【发布时间】:2019-03-30 17:41:29 【问题描述】:

我对我的项目执行了pod update。该项目使用以下 pod:

 pod 'Firebase/Core'
 pod 'Google-Mobile-Ads-SDK'
 pod 'Fabric'
 pod 'Crashlytics'

自更新以来,Pods > FirebaseInstanceID 目录的格式不正确。它只是充满了 .h 和 .m 文件,以及一个 Support Files 目录。

截图如下:

在我执行 pod update 之前,该目录已正确格式化为 Frameworks > FirebaseInstanceID.framework > Headers。 (仅供参考,我删除了 FirebaseCrash)

截图如下:

这仅发生在 1 个特定项目中。我在其他几个项目中使用 Firebase。当我更新 pod 时,它们都没有这种不正确的 FirebaseInstanceID 目录格式。

为什么在 Pod 更新后 FirebaseInstanceID 目录格式不正确?

【问题讨论】:

使用 Cocoapods,您必须将其添加到您的 podfile pod 'Firebase/Messaging',然后您将在 Shell 中看到“Installing FirebaseInstanceID (4.3.4)” 【参考方案1】:

FirebaseInstanceID 最近开源并从二进制转换为源 CocoaPod。您会在安装过程中注意到 FirebaseCore 具有类似的源结构。

随着时间的推移,Firebase SDK 会逐渐增加 open sourcing。如果您想将二进制框架集成到您的应用中,您可以尝试使用CocoaPods Rome 或Carthage。

但是,需要明确的是,建议您使用默认的 CocoaPods 安装,并且得到最好的支持。

【讨论】:

感谢您澄清这一点。这个问题的真正需要是希望能解决我在这里遇到的长达一年的问题:***.com/questions/49325501/…。我认为崩溃问题可能与 pod 更新后 FirebaseInstanceID 的这种新格式有关。我将此答案标记为正确,但我会喜欢您对我链接的那个旧线程的意见!如果需要,我很乐意澄清任何事情。 如果您使用 Firebase 5.x 更新或创建新问题以及更完整的回溯或可重现的示例,我可以看看。如果pod update 没有提供最新版本,请检查Podfile.lock 找出原因。

以上是关于FirebaseInstanceID 无法使用 cocoapods 正确安装的主要内容,如果未能解决你的问题,请参考以下文章

安装 FirebaseInstanceID 时出错

错误:ios 上没有这样的模块“FirebaseInstanceID”

Flutter:java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/iid/FirebaseInstanceId

FirebaseCloudMessaging:FirebaseInstanceId 后台同步失败 - SERVICE_NOT_AVAILABLE

在我的 android studio 项目中找不到符号类 FirebaseInstanceId

FirebaseInstanceId:令牌检索失败:SERVICE_NOT_AVAILABLE 错误