ld:通过 cocoapods 从 4.x.x 升级到 5.x.x firebase 后找不到框架 FirebaseAnalytics

Posted

技术标签:

【中文标题】ld:通过 cocoapods 从 4.x.x 升级到 5.x.x firebase 后找不到框架 FirebaseAnalytics【英文标题】:ld: framework not found FirebaseAnalytics after upgrading from 4.x.x to 5.x.x firebase through cocoapods 【发布时间】:2018-09-05 11:54:48 【问题描述】:

Xcode 开始遇到这个错误

ld:找不到框架 Firebase-XXXXXX

其中 XXXXXX 可以是 podfile 中列出的任何框架,这里是该 podfile 的特定部分

pod 'Firebase/Database'
pod 'Firebase/Auth'
pod 'FirebaseUI/Database'
pod 'Firebase/Storage'
pod 'Firebase/Messaging'

在我使用项目目录中的pod install 将现有项目的firebase 框架(在启动此项目时位于4.x.x version 中)更新为firebase 的较新的5.x.x version(用于使用ML-Kit)之后,编译失败。

上网后目前采取的步骤,

以下是使用正在运行的 4.x.x 版本项目的备份副本完成的,

a) 尝试了这个绿色标记question的所有答案

b) 清除了该项目的 Xcode 派生数据,cocoapods 缓存已卸载/重新安装。注释掉 podfile 中的 firebase 部分,然后 pod install 两次(一次用于删除 firebase,第二次用于再次安装)

c) 手动将生成 firebase 依赖项的错误复制到项目的文件夹(坏主意,52 个错误 300 多个警告)

我们将不胜感激。

【问题讨论】:

那么主要问题是什么?当您尝试使用新框架时,更新项目是正常的方式,因为如果不进行此修复,某些功能可能会处于非活动状态。 升级 podfile 中提到的所有框架后,编译失败。如问题开头所述:ld: framework not found Firebase-XXXXXX 【参考方案1】:

将以下内容添加到 Podfile:

pod 'Firebase/Core'

在 Firebase 5 中,FirebaseAnalytics 不再是数据库、消息传递和存储的隐式依赖项。

Firebase 文档建议始终包含 Firebase/Core 以获取 Firebase 的核心功能,包括分析。

【讨论】:

这似乎有效,但无法通过这个:ld: framework not found FirebaseDatabaseUI 运气不好,附带说明 -- 有一个 cocoapods 警告:target overrides the ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` 在Pods/Target Support Files/Pods-x/Pods-x.debug.xcconfig'. This can lead to problems with the CocoaPods installation 中定义的构建设置,清除它并按照您的建议进行尝试,但错误仍然存​​在【参考方案2】:

每个 Firebase 依赖项之间都有各种联系,即使您的项目不需要,例如 - 对于此依赖项:ld: framework not found FirebaseDatabaseUI 在项目中不是必需的,而是通过这些步骤取出的,

转到

Target(project_name)-> Build Settings-> search(Other linker flags)-> from 他们删除了冲突的依赖项

确保重新构建并检查该依赖项是否被使用过,在我的情况下它没有。

【讨论】:

以上是关于ld:通过 cocoapods 从 4.x.x 升级到 5.x.x firebase 后找不到框架 FirebaseAnalytics的主要内容,如果未能解决你的问题,请参考以下文章

错误:ld:找不到带有 CocoaPods 的 -lPods 的库

cocoapods - ld:框架未找到Pods

Cocoapods Google Analytics ld:找不到框架

Xcode 6.1.1 的静态库和 cocoapods - ld: library not found 错误

从 Xcode 项目运行应用程序时 Cocoapods 链接器错误

找不到cocoapods框架