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

Posted

技术标签:

【中文标题】无法使用 Xcode 12.0 beta 5 构建项目【英文标题】:Cannot build project with Xcode 12.0 beta 5 【发布时间】:2020-08-10 14:26:37 【问题描述】:

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

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

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

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

【问题讨论】:

您在哪里收到该错误?您是否有任何可能尝试为特定模拟器构建的预构建脚本?你是在打电话给 carthage 还是任何其他 3rd 方依赖管理器? 我在尝试构建项目时收到错误消息。我正在使用 Cocoapods 来管理依赖项,但是除了设置阶段添加的那些之外,我没有自定义构建脚本阶段(我试图删除并读取这些 pod,但没有运气)。我还尝试创建一个新项目并使用实际项目中使用的相同框架设置 Podfile,在这种情况下它可以正确构建,所以我认为它与第三方框架无关。 【参考方案1】:

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

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

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

但是,device 的构建支持 iOS 9 及更高版本:

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

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

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

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

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

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

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

旧版构建系统已弃用,并将在未来移除 释放。 (62742902)

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

VALID_ARCHS 在 Xcode 12 中已被弃用,因此,只需从您的项目和目标构建设置中删除引用即可:

    您的项目设置 > 构建设置 > VALID_ARCHS YourProject 设置 > TARGETS > YourProject > 构建设置 > VALID_ARCHS YourProject 设置 > TARGETS > UITests > 构建设置 > VALID_ARCHS 您的项目设置 > 目标 > 单元测试 > 构建设置 > VALID_ARCHS

Image of what VALID_ARCHS should look like

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

【讨论】:

以上是关于无法使用 Xcode 12.0 beta 5 构建项目的主要内容,如果未能解决你的问题,请参考以下文章

无法在 macOS Monterey 版本 12.0 Beta 中安装 Cocoapods - Xcode 13.0(13A233)

Xcode 5 安装 Xcode 6 beta 2 后无法构建模块 Cocoa

xcode 5.1 beta ad hoc 构建无法上传到 Test Flight

如何在 watchOS 2 应用程序 Xcode 7 beta 5 中使用 Parse

无法开发应用程序,因为在 iOS 13.0/Xcode 11 beta 5 中“无法在设备上找到应用程序”[重复]

Xcode 12.0 12A7209 SwiftUI 错误:编译器无法在合理的时间内对该表达式进行类型检查