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

5
我下载了 Xcode 12.0 beta 5 ,现在正在尝试构建我的项目,但是我收到了以下错误提示:
<unknown>:0: error: unable to load standard library for target 'arm64-apple-ios9.0'

我尝试在网上寻找解决方案,但是我找到的所有内容都没有帮助我解决这个错误。我在SO上找到了这个线程,但是其中提出的解决方案都没有对我起作用。

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


你在哪里收到了那个错误?你有任何预构建的脚本可能正在尝试为特定的模拟器构建吗?你是否调用了Carthage或其他第三方依赖管理器? - Dávid Pásztor
我在尝试构建项目时遇到了错误。 我正在使用Cocoapods来管理依赖项,但是除了安装程序阶段添加的那些之外,我没有自定义构建脚本阶段(我尝试删除并重新添加了pods,但没有成功)。 我还尝试创建一个新项目并使用与实际项目中使用的相同框架设置Podfile,在这种情况下它可以正确构建,因此我不认为与第三方框架有关。 - Dree
4个回答

6
你的错误信息很简洁,但表明你正在尝试构建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. 值得检查“内容” -> “开发人员” -> “平台” -> “iPhoneOS.platform” -> “DeviceSupport”中iOS 9的内容。确保你在这里有模拟器设备支持文件。

  2. 如果你之前安装了Xcode beta版本,请确保再次将命令行工具设置为你想要使用的最新Xcode beta版本(如果你安装了新版本的Xcode,则它们会被停用)。

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

  4. 检查你的架构构建设置是否对所有目标设置为$(ARCHS_STANDARD)。奇怪的是你正在使用arm架构 - 通常模拟器构建是x86_64,因此你需要解决任何冲突的架构构建设置(你是否在使用Mac Catalyst或者开发者过渡套件?)。

build settings

  1. 禁用这些方案设置(在工具栏的“编辑方案”中),以及主线程检查器。这对于许多Xcode构建/运行时错误是一种解决方法。

scheme settings

此外,我建议检查您是否在构建设置中为Pods和应用程序目标使用了新的构建系统。这里可能存在冲突的设置。根据Xcode 12 Beta发布说明:
“传统的构建系统已经过时,并将在未来的版本中被删除。(62742902)”
对于每个步骤,请确保清除派生数据并重新构建。在尝试之间重新启动Xcode也是个好主意。如果这7个建议都不起作用,那么我建议您在反馈助手上提出错误报告。Xcode在测试版阶段正在进行大量的快速改进,因此可能会出现一些意外行为。

3

我也遇到过这个问题。我无法在模拟器上构建,出现了完全相同的错误,并且一直认为是CocoaPods的问题,但我错了。
根据Xcode 12 Beta发布说明:

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

我通过手动编辑项目文件 (用文本编辑器打开我的.xcworkspace文件)并删除所有涉及VALID_ARCHS的行来解决此问题。
之后,我就能够成功地在模拟器上构建了。


1

1

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

  1. 您的项目设置 > 构建设置 > VALID_ARCHS
  2. 您的项目设置 > TARGETS > 您的项目 > 构建设置 > VALID_ARCHS
  3. 您的项目设置 > TARGETS > UITests > 构建设置 > VALID_ARCHS
  4. 您的项目设置 > TARGETS > UnitTests > 构建设置 > VALID_ARCHS

VALID_ARCHS应该是什么样子的图片

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


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