Xcode 要求

适用于 iOS、tvOS、Mac Catalyst 或 macOS 工作负载的每个 .NET 版本都需要特定版本的 Xcode。

我们在发行说明中说明了每个版本的确切 Xcode 版本。

注释

在少数特定情况下,使用不同版本的 Xcode 可能可行,但这样做并不受支持,即使没有生成错误或警告。

新工作负载

新版本的工作负荷可能需要不同版本的 Xcode。 每当 Apple 发布新版本的 Xcode 时,通常会发生这种情况:不久之后,我们将发布新版本的工作负载,从而支持新版本的 Xcode。 因此,更新工作负载最终需要新版本的 Xcode。

这通常表现为构建错误,如下所示:

此版本的 Microsoft.iOS 需要 iOS 18.4 SDK(随 Xcode 16.3 一起提供)。 Xcode 的当前版本为 16.2。 安装 Xcode 16.3,或使用不同版本的 Microsoft.iOS。 有关详细信息,请参阅 https://aka.ms/xcode-requirement

或:

此版本的 .NET for iOS(18.4.9288)需要 Xcode 16.3。 Xcode 的当前版本为 16.2。 安装 Xcode 16.3,或使用适用于 iOS 的不同版本的 .NET。 有关详细信息,请参阅 https://aka.ms/xcode-requirement

最简单的解决方案通常是升级到错误消息提及的 Xcode 版本。

还可以安装 较旧 版本的相应工作负荷,以避免升级 Xcode。

在某些情况下,较新版本的 Xcode 还需要更新到较新的主版本的 macOS(这通常发生在每年 4 月左右)。 如果开发人员的当前硬件不支持新的 macOS 版本,唯一的选择是使用 版工作负载(或获取新硬件)。

新建 Xcode

Apple 发布新版本的 Xcode 和我们发布对此新 Xcode 版本的支持之间有一段时间。 有时 macOS 将自动更新已安装的 Xcode 版本,这可能会导致此时间段内出现问题。

最简单的解决方案是 安装多个版本的 Xcode,并选择与已安装工作负载的 Xcode 要求相对应的 Xcode 版本。

注释

建议在 macOS 上的 App Store 中禁用自动更新,以避免这种情况。

安装多个版本的 Xcode

可以同时安装多个版本的 Xcode。

可通过以下步骤完成此作:

  • 转到 Apple 开发人员下载 网站。
  • 使用 Apple ID 登录。
  • 搜索所需的 Xcode 版本。
  • 下载.xip文件。
  • 双击文件以解压它们。
  • 将“下载”文件夹中的内容 Xcode.app 重命名为更具描述性的内容(例如 Xcode_15.app)。
  • 将提取出的*.app移动到/Applications/目录。

注释

如果 Xcode 应用在至少打开一次后重命名,则会出现奇怪的问题,因此我们建议仅在下载并提取应用后立即重命名该应用。

安装所需的 Xcode 版本后,开发人员可以从 Xcode(菜单 Xcode - 设置 -> 位置 ->> 命令行工具)或xcode-select命令行工具中进行选择:

$ sudo xcode-select --switch /Applications/Xcode_15.app

重要

~/Library/Preferences/Xamarin/Settings.plist该文件还可用于选择特定版本的 Xcode,此文件优先于 Xcode 或命令行xcode-select中指定的设置。 为了避免混淆,建议只删除此文件。

安装较旧版本的工作负载

使用 工作负荷集安装特定版本的工作负荷。

确切的工作负荷集版本不能提前预测,但我们在每个版本中为特定工作负荷版本声明工作负荷集版本: https://github.com/dotnet/macios/releases

下面是支持 Xcode 16.3 的版本的示例:

$ dotnet workload install ios --version 9.0.203

常见问题

升级 Xcode 是否安全?

可以通过查看 版本列表来检查我们是否发布了对特定版本的 Xcode 的支持。

如果我们发布了对特定版本的 Xcode 的支持,则可以安全地升级到该版本的 Xcode(这包括 MAUI 开发人员)。 可能还有其他文档指出某些较旧版本的 Xcode 是受支持的版本;这些文档通常滞后于我们的版本一定程度上。

相反的是:如果我们 尚未 发布对给定版本的 Xcode 的支持,则升级 Xcode 可能会导致问题。 对于想要较新版本 Xcode 的开发人员,在这种情况下,最佳解决方案是 安装多个版本的 Xcode