Xcode 12:在 FIRAnalyticsConnector 上构建错误

Posted

技术标签:

【中文标题】Xcode 12:在 FIRAnalyticsConnector 上构建错误【英文标题】:Xcode 12: build Error on FIRAnalyticsConnector 【发布时间】:2021-01-18 02:55:48 【问题描述】:

升级到 Xcode 12 后,我的项目不再为模拟器构建。

我得到的错误是:

ld: in ... /Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(
FIRAnalyticsConnector_e321ed8e3db06efc9803f6c008e67a34.o), 
building for ios Simulator, but linking in object file built for iOS, file
'.../Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector'
for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

一种解决方法是将arm64 添加到我的项目> 构建设置> 排除架构,但它不会为我的真实设备构建。

我已经尝试过清理构建文件夹、更新 pod 文件、重启等。

我正在使用:

Firebase/分析 (6.33.0) Xcode 12.0.1 (12A7300) CocoaPods:1.9.3

有什么想法吗?

【问题讨论】:

你更新你的 pod 文件了吗? @sekoyaz 是的。我使用所有依赖项的最新版本。但是我在更新之前也遇到了错误。 【参考方案1】:

好的,我终于找到了解决这个问题的方法。

对于“发布”也将“仅构建活动架构”更改为“是”。 可以在选择您的项目 >“构建设置”>“目标”(您的目标)>“架构”中找到该设置

来源和更详细的解释可以在这里找到:https://***.com/a/64139830/4134160

请注意,该问题与 Firebase 无关。我仍然会留下它,因为它可能会导致其他人遇到这个问题并帮助他们解决这个问题。

苹果 M1

如果您在 M1 芯片上运行,请考虑以下@Aspen 的回答: https://***.com/a/65460729/4134160

【讨论】:

这并没有解决在 Apple M1 上运行时的问题。 我可以确认我在 M1 上也有这个问题 @themenace 是的,同样的错误信息。我认为这与芯片是 M1 arm64 的事实有关,但 pod 库本身(在本例中为 Firebase Analytics)尚未针对 M1 进行更新。我能够通过下面的回答解决问题。 @Aspen 我明白了。太好了,您找到了解决方案并将其添加到此处 :) 我无法验证它,因为我还没有 M1,但我相信其他人会。 M1 的人请查看@Aspen 的答案。【参考方案2】:

我通过在 Rosetta (Apple M1) 下运行 xcode12 解决了这个问题。

打开 Finder -> 应用程序 -> 定位 Xcode -> 右键单击​​ -> 获取信息 -> 使用 Rosetta 检查打开。

然后重新打开 xcode。

【讨论】:

请不要添加same answer to multiple questions。一旦您获得足够的声誉,就回答最好的一个并将其余的标记为重复。如果不是重复的,请根据问题调整帖子并标记以取消删除。 天啊,这行得通。这是什么罗塞塔?我被她困住了。谢谢。【参考方案3】:

在为主项目和 Pods 项目添加 arm64Excluded Architectures 后,我能够解决我在 Apple M1 上遇到的这个问题。

我还必须清除 DerivedData 文件夹并重新启动 Xcode。

欲了解更多信息,请参阅:https://medium.com/@khushwanttanwar/xcode-12-compilation-errors-while-running-with-ios-14-simulators-5731c91326e9

【讨论】:

也对我有用,但我想知道在发布应用程序时这有什么缺点吗? 谢谢,为我工作,但如果您可以将这些步骤直接粘贴到您的答案中,一个建议而不是链接将会很有帮助。【参考方案4】:

我的情况有点不同。根据this Firebase engineer,

FIRAnalyticsConnector 现在是 xcframework 版本的一部分 FirebaseAnalytics,不需要链接。

进入目标Build Settings(不是项目),搜索Other Linker Flags,然后从列表中删除FIRAnalyticsConnector 为我解决了这个问题。

有趣的是,当我运行 pod deintegratepod install 时,它并没有解决这个问题。

【讨论】:

【参考方案5】:

在运行pod install 后在Xcode v12.4 中遇到了同样的问题。

在我的项目中进行了一些搜索后,我终于在目标的Build PhasesLink Binary With Libraries 部分找到了对它的引用。从列表中删除 FIRAnalyticsConnector.framework 解决了我的问题。

【讨论】:

【参考方案6】:

最后,按照此链接https://github.com/firebase/firebase-ios-sdk/blob/CocoaPods-7.2.0/AppleSilicon.md 的说明,解决了它。

【讨论】:

【参考方案7】:

从目标列表中删除 -fraemwork "FIRAnalyticsConnector" -> “构建设置” -> OTHER_LDFLAGS

【讨论】:

【参考方案8】:

如果您在配备新 Macbook Pro M1 处理器的 Apple Silicone 上运行。这是一个已知问题。

Firebase not compiling on Apple Silicone

【讨论】:

以上是关于Xcode 12:在 FIRAnalyticsConnector 上构建错误的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 12:在 FIRAnalyticsConnector 上构建错误

如何在 Xcode 12 中使用 iOS 12 模拟器

Xcode 12.3 在 SwiftUI 项目启动时冻结

UIBarButtonItem 工作但在 Xcode 11 和 Xcode 12 中不可见

Xcode 12 中的 Switch 必须详尽无遗

构建设置中缺少 Xcode 12 beta 有效架构