Xcode 12:在 FIRAnalyticsConnector 上构建错误

the*_*ace 23 xcode ios firebase-analytics xcode12

升级到 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)
Run Code Online (Sandbox Code Playgroud)

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

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

我正在使用:

  • Firebase/分析 (6.33.0)
  • Xcode 12.0.1 (12A7300)
  • 可可豆:1.9.3

有任何想法吗?

the*_*ace 49

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

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

需要更改的设置的图像

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

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

  • 这并没有解决在 Apple M1 上运行时的问题。 (16认同)
  • 我可以确认我在 M1 上也有这个问题 (8认同)
  • @themenace 是的,同样的错误消息。我认为这与以下事实有关:虽然芯片是 M1 arm64,但 pod 库本身(在本例中为 Firebase Analytics)尚未针对 M1 进行更新。我能够用下面的答案解决这个问题。 (2认同)
  • M1 的朋友们请查看@Aspen 的回答。 (2认同)

小智 11

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

打开 Finder -> 应用程序 -> 找到 Xcode -> 右键单击​​ -> 获取信息 -> 使用 rosetta 检查打开。

然后重新打开xcode。

  • 天啊,这成功了。这是什么罗塞塔?我因为她而陷入困境。谢谢。 (2认同)

Asp*_*pen 9

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

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

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

  • 谢谢伙计,为我工作,但如果您可以将这些步骤直接粘贴到您的答案中,那么一个建议而不是链接将会非常有帮助。 (2认同)

Ben*_*Ben 8

我的情况有点不同。根据这位 Firebase 工程师的说法,

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

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

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