返回
Xcode 15 排除模拟器 arm64 架构导致链接器命令失败怎么办?
IOS
2024-03-23 22:44:42
Xcode 15:在为模拟器排除 arm64 架构时修复链接器命令失败
背景
在更新到 Xcode 15 后,许多开发者在为模拟器排除 arm64 架构时遇到了链接器命令失败的问题。这阻止了他们在模拟器上运行他们的应用程序,而 arm64 架构通常对于 M2 芯片的 Mac 来说是必需的。
原因
此问题是由 Xcode 15 中的 linker 更改引起的。以前,可以通过在项目设置中指定“排除架构”来排除特定架构。但是,在 Xcode 15 中,该方法不再起作用,导致了链接器命令失败错误。
解决方案
要解决此问题,需要执行以下步骤:
- 在构建设置中排除 arm64 架构
- 添加自定义构建脚本
- 清理构建文件夹
- 重新构建项目
详细步骤
1. 在构建设置中排除 arm64 架构
- 在 Xcode 中,打开您的项目。
- 转到“Build Settings”选项卡。
- 在“搜索框”中输入“Excluded Architectures”。
- 在“Excluded Architectures”行中,将“arm64”添加到列表中。
2. 添加自定义构建脚本
- 在“Build Phases”选项卡中,单击“+”按钮,然后选择“New Build Script”。
- 在“脚本”编辑器中,添加以下脚本:
# Xcode 15 Simulator Linker Fix
# Remove the -force_load flag from the linker arguments for the simulator build
OTHER_LDFLAGS=$(OTHER_LDFLAGS/.*-force_load.*)
- 确保将脚本添加到“Debug”和“Release”构建配置中。
3. 清理构建文件夹
- 在终端中,转到您的项目目录。
- 运行以下命令:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
4. 重新构建项目
- 在 Xcode 中,单击“Product”菜单,然后选择“Clean Build Folder”。
- 再次构建项目。
其他注意事项
- 如果你正在使用 Carthage,还必须排除“arm64”架构。
- 如果问题仍然存在,请尝试关闭 Xcode,然后重新打开。
- 如果你仍然遇到问题,请联系 Apple 开发者支持。
常见问题解答
- 为什么在 Xcode 15 中需要这些步骤来排除 arm64 架构?
Xcode 15 中的 linker 更改导致了排除架构时出现链接器命令失败错误。因此,需要执行这些步骤来解决该问题。
- 为什么无法在构建设置中简单地排除 arm64 架构?
在 Xcode 15 中,仅在构建设置中排除 arm64 架构不再足以解决问题。需要添加自定义构建脚本以进一步修改链接器参数。
- 清理构建文件夹是否必要?
清理构建文件夹可以确保 Xcode 从头开始构建项目,从而消除任何潜在的缓存问题。
- 如果仍然遇到问题该怎么办?
如果在执行上述步骤后仍然遇到问题,请联系 Apple 开发者支持以获取帮助。
- 这些步骤适用于哪些 Xcode 版本?
这些步骤适用于 Xcode 15 及更高版本。