Xcode 14.1 使用 Rosetta 解决打包 iOS App 失败问题
2023-10-03 18:12:13
使用 Xcode 14.1 在 macOS Monterey 上打包 iOS App 遇到 "ibrealmcore-ios.a for architecture arm64" 错误的解决方法
问题
在 macOS Monterey 上使用 Xcode 14.1 打包 iOS App 时,如果指定模拟器,可能会遇到以下打包失败的错误:
ld: warning: ignoring file /Users/myusername/Library/Developer/Xcode/DerivedData/MyApp-egrvkyuugzpmyubfyemxbzyfynjre/Build/Intermediates.noindex/MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/arm64/ibrealmcore-ios.a, file was built for archive which is not the architecture being linked (arm64)
解决方法
要解决此问题,可以使用以下方法:
-
确保使用 Rosetta 打开 Xcode
- 在访达中找到 Xcode 的应用程序图标,通常位于 "/Applications" 文件夹中。
- 右键单击 Xcode 的图标,然后选择 "显示简介"。
- 在 "打开方式" 部分,勾选 "使用 Rosetta 打开"。
- 关闭 "显示简介" 窗口。
- 重新打开 Xcode。
为什么此方法有效?
此方法之所以有效,是因为它允许 Xcode 在 Intel 架构上运行。这对于使用 Apple 硅芯片的 Mac 电脑上的 Xcode 来说非常重要,因为 Xcode 尚未完全针对 Apple 硅进行优化。
其他可能的解决方案
如果上述方法无法解决问题,可以尝试以下其他方法:
- 确保您使用的是最新的 Xcode 版本。
- 确保您使用的是正确的打包设置。
- 尝试在不同的模拟器上打包 iOS App。
- 尝试清理 Xcode 的构建文件夹。
- 尝试重新安装 Xcode。
常见问题解答
1. 此方法会影响 Xcode 的性能吗?
是的,此方法可能会对 Xcode 的性能产生轻微影响。但是,这种影响通常可以忽略不计。
2. 如果我仍然无法成功打包 iOS App,该怎么办?
您可以尝试以下方法:
- 确保您使用的是正确的打包设置。
- 尝试在不同的模拟器上打包 iOS App。
- 尝试清理 Xcode 的构建文件夹。
- 尝试重新安装 Xcode。
3. 为什么 Xcode 尚未针对 Apple 硅进行优化?
Xcode 是一个复杂的应用程序,需要时间才能完全针对 Apple 硅进行优化。苹果一直在努力优化 Xcode,但该过程仍在进行中。
4. 如何检查 Xcode 是否使用 Rosetta 打开?
您可以通过以下步骤检查 Xcode 是否使用 Rosetta 打开:
- 在 Xcode 中,选择 "Xcode" 菜单,然后选择 "关于 Xcode"。
- 在 "关于 Xcode" 窗口中,查找 "使用 Rosetta 2" 部分。
- 如果 "使用 Rosetta 2" 已选中,则 Xcode 使用 Rosetta 打开。
5. 如果我使用 Apple 硅 Mac,是否仍然需要使用 Rosetta 打开 Xcode?
是的,在 macOS Monterey 上,即使您使用 Apple 硅 Mac,也需要使用 Rosetta 打开 Xcode。这是因为 Xcode 尚未完全针对 Apple 硅进行优化。
结论
在 macOS Monterey 上使用 Xcode 14.1 打包 iOS App 时,如果您遇到 "ibrealmcore-ios.a for architecture arm64" 错误,可以尝试使用 Rosetta 打开 Xcode 来解决问题。如果此方法不起作用,可以尝试其他列出的解决方案。