无法使用 Xcode 12.0 beta 5 构建项目

Cannot build project with Xcode 12.0 beta 5

我下载了 Xcode 12.0 beta 5 并尝试构建我的项目,但我收到以下错误:

<unknown>:0: error: unable to load standard library for target 'arm64-apple-ios9.0'

我尝试在线搜索解决方案,但我找到的 none 帮助我解决了这个错误。我在 SO 上找到了 this thread,但是 none 的建议解决方案对我有用。

我认为这是与模拟器有关的错误。事实上,该项目可以在通用设备和真实设备上正确构建。

我也遇到了这个问题。我无法为模拟器构建完全相同的错误,而且我还以为是 CocoaPods 的缘故而崩溃了,但我错了.
截至 Xcode 12 Beta 发行说明:

“构建设置编辑器不再包含有效架构构建设置 (VALID_ARCHS),并且不鼓励使用它。相反,有一个新的排除架构构建设置 (EXCLUDED_ARCHS)。如果项目包含 VALID_ARCHS,该设置将显示在构建设置编辑器的 User-Defined 部分。(15145028)"

我能够通过手动编辑项目文件(我用文本编辑器打开我的 .xcworkspace)并删除所有引用的行来解决这个问题至 VALID_ARCHS.
在那之后,我能够很好地为模拟器构建。

我没有明确的修复方法,但我在以前的 Xcode 版本中遇到过这个问题。有些人有时工作,有些人有时工作。以下链接在不同场合对我有用。

https://github.com/OneSignal/OneSignal-iOS-SDK/issues/636 https://github.com/Alamofire/Alamofire/issues/2612

您的错误消息非常少,但表明您正在尝试为 iOS 9.0 构建 - 我会在导航器中检查您的构建报告以获得更有用的错误消息。我对这个问题有一些预感:

  1. Xcode 12 Beta 6 发行说明包括新的“弃用”,它仅支持特定的 iOS 模拟器版本:

Deprecations When running in macOS 11, Simulator supports iOS 11.4 or later. (59938106)

但是,为 设备构建 支持 iOS 9 及更高版本:

Deprecations Xcode now supports debugging apps and running tests on iOS devices running iOS 9.0 and above. (59561001)

  1. 值得检查 Contents -> Developer -> Platforms -> iPhoneOS.platform -> DeviceSupport for iOS 9. 确保你有模拟器设备支持文件在这里。

  2. 此外,如果您安装了以前的 Xcode 测试版,请确保再次将命令行工具设置为您要使用的最新 Xcode 测试版(如果你安装新版本的 Xcode).

  3. 如其他答案中所述,从您的主要目标和 CocoaPods 目标中删除 $(VALID_ARCHS) 构建设置。

  4. 检查您的架构构建设置是否针对 所有 目标设置为 $(ARCHS_STANDARD)。奇怪的是,您使用的是 arm 架构 - 通常模拟器构建是 x86_64,因此您需要解决任何冲突的架构构建设置(您使用的是 Mac Catalyst 还是 Developer Transition Kit? ?).

  1. 禁用这些方案设置(在工具栏的编辑方案中),以及主线程检查器。这是 Xcode.
  2. 中许多 build/runtime 错误的解决方法

  1. 另外,我会检查您是否使用新的构建系统作为 Pods 和应用程序目标的构建设置。这里的冲突设置可能是问题所在。来自 Xcode 12 Beta 发行说明:

The legacy build system is deprecated, and will be removed in a future release. (62742902)

对于其中的每个步骤,请确保清除派生数据并重建。在尝试之间重新启动 Xcode 也是一个好主意。如果 7 条建议中的 none 有效,那么我会建议您在反馈助手上提交错误票。 Xcode 正在测试阶段进行大量快速改进,因此可能会出现一些意外行为。

VALID_ARCHS 在 Xcode 12 中已被弃用,因此,只需通过导航至以下位置从您的项目和目标构建设置中删除引用:

  1. 你的项目设置 > 构建设置 > VALID_ARCHS
  2. 你的项目设置 > 目标 > 你的项目 > 构建设置 > VALID_ARCHS
  3. 你的项目设置 > 目标 > UITests > 构建设置 > VALID_ARCHS
  4. 你的项目设置 > 目标 > 单元测试 > 构建设置 > VALID_ARCHS

Image of what VALID_ARCHS should look like

突出显示行并按“删除”键