无法为M1模拟器编译。链接的目标文件是为iOS构建的,文件...适用于arm64架构。

6
我最近购买了一台新的 M1 Macbook,专门用于 IOS 开发。在设置好 cocoapods 和 xcode 的工作空间后,我发现我不能在模拟器中测试我的应用程序。我已经看到一些解决方案,其中人们建议将 arm64 添加到排除架构列表中。但是它似乎不起作用。我相信这是 intel macs 的解决方案,而不是 M1,因为 M1 是 arm64。
以下是完整的错误代码:
在/Users/michaellam/Documents/GitHub/Send-Story/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(FIRAnalyticsConnector_a8eeba373b74508311b8b22b8d3202a6.o)中,构建 iOS 模拟器,但在链接到为 iOS 构建的对象文件中,文件'/Users/michaellam/Documents/GitHub/Send-Story/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector'适用于架构 arm64 clang: 错误:链接器命令失败,退出状态码为 1(使用-v查看调用)
2个回答

3
运行pod update以更新到最新版本的FirebaseAnalytics,目前为7.7.0,该版本完全支持M1 Macbook开发。
有关Firebase支持何时添加的更多详细信息,请参阅发布说明

谢谢,结果发现仅更新Pods是不够的。我使用了“pod deintegrate,pod install,pod update”来清除错误。 - Michael Lam

0

重要提示:

以下解决方案仅适用于当您的项目使用任何第三方库,但该库实际上不支持架构时。正如@itskoBits所提到的,这种情况下性能问题是真实存在的。

打开Finder

前往

应用程序 -> 右键单击 Xcode -> 选择 获取信息

在常规选项卡下,确保对于 M1 Mac 选择了 使用 Rosetta 打开 选项。

enter image description here


我只是想指出这会有显著的性能损失。在我们的应用程序中,我们尝试将其作为失败快照测试的解决方案,但损失达到了约50%。 - itskoBits

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接