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 项目添加 arm64
到 Excluded 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 deintegrate
和 pod install
时,它并没有解决这个问题。
【讨论】:
【参考方案5】:在运行pod install
后在Xcode v12.4
中遇到了同样的问题。
在我的项目中进行了一些搜索后,我终于在目标的Build Phases
的Link 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 上构建错误