5

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

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

我尝试在网上搜索解决方案,但我发现没有一个可以帮助我解决这个错误。我在 SO 上找到了这个帖子,但没有一个建议的解决方案对我有用。

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

4

4 回答 4

6

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

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

弃用 在 macOS 11 中运行时,模拟器支持 iOS 11.4 或更高版本。(59938106)

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

弃用 Xcode 现在支持在运行 iOS 9.0 及更高版本的 iOS 设备上调试应用程序和运行测试。(59561001)

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

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

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

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

构建设置

  1. 禁用这些方案设置(在工具栏中的编辑方案中)以及主线程检查器。这可以作为 Xcode 中许多构建/运行时错误的解决方法。

方案设置

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

旧版构建系统已弃用,并将在未来的版本中删除。(62742902)

对于这些步骤中的每一个,请确保清除派生数据并重建。在尝试之间重新启动 Xcode 也是一个好主意。如果 7 条建议都不起作用,那么我建议您在反馈助手上提出错误票。Xcode 在 beta 阶段经历了很多快速的改进,所以可能会出现一些意想不到的行为。

于 2020-09-10T04:29:04.993 回答
3

我也有这个问题。我无法为模拟器构建完全相同的错误,并且我还以为这是因为 CocoaPods 而让我大吃一惊,但我错了。
截至 Xcode 12 Beta 发行说明:

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

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

于 2020-09-08T05:28:09.187 回答
1

我没有明确的解决方法,但我在以前版本的 Xcode 中已经解决了这个问题。有些人有时工作,有些人有时工作。以下链接在不同场合对我有用。

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

于 2020-09-09T18:35:47.790 回答
1

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

  1. YourProject 设置 > 构建设置 > VALID_ARCHS
  2. YourProject 设置 > TARGETS > YourProject > 构建设置 > VALID_ARCHS
  3. YourProject Settings > TARGETS > UITests > Build Settings > VALID_ARCHS
  4. YourProject Settings > TARGETS > UnitTests > Build Settings > VALID_ARCHS

VALID_ARCHS 应该是什么样子的图像

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

于 2020-09-23T22:51:46.483 回答