iOS 应用的自动预配

自动预配是将 .NET Multi-platform App UI (.NET MAUI) iOS 应用部署到设备的推荐方法。 使用此方法时,Visual Studio 会自动创建和管理签名标识、应用 ID 和预配配置文件。 在开始自动预配过程之前,应确保已将你的 Apple 开发人员帐户添加到了 Visual Studio。 有关详细信息,请参阅 Apple 帐户管理

将 Apple 开发人员帐户添加到 Visual Studio 后,可以使用任何关联的团队。 然后,可以针对团队创建证书、应用 ID 和配置文件。 团队 ID 还用于为将包含在预配配置文件中的应用 ID 创建前缀,使 Apple 能够验证该应用是否可以部署到设备。

重要说明

开始之前,请确保已接受 Apple 开发人员帐户和 App Store Connect 中的任何用户许可协议。

启用自动设置

将 Apple 开发人员帐户添加到 Visual Studio 后,需要为 .NET MAUI 应用项目启用自动设置:

  1. 在“解决方案资源管理器”中,右键单击 .NET MAUI 应用项目,然后选择“属性”。 然后,导航到“iOS > 捆绑签名”选项卡,并确保在“方案”下拉列表中选择了“自动预配”

    Visual Studio 中适用于 iOS 的捆绑包签名选项卡的屏幕截图。

  2. 在“捆绑签名”设置中,单击“配置自动预配”超链接。

  3. 在“配置自动预配”对话框中选择团队。 Visual Studio 将尝试自动预配项目,并将指示该过程是否已成功完成:

    正确配置自动预配对话框时的屏幕截图。

    如果自动预配失败,“配置自动预配”对话框将显示错误的原因。

  4. 在“配置自动预配”对话框中,单击“确定”按钮以关闭对话框。

部署到设备

在 .NET MAUI 应用项目中配置预配后,即可使用 Visual Studio 将应用部署到设备:

  1. 在 Visual Studio 中,确保 IDE 已与 Mac 生成主机配对。 有关详细信息,请参阅与 Mac 配对以进行 iOS 开发

  2. 确保 iOS 设备已通过 USB 或 WiFi 连接到 Mac 生成主机。 有关无线部署的详细信息,请参阅 .NET MAUI iOS 应用无线部署

  3. 在 Visual Studio 工具栏中,使用“调试目标”下拉列表选择“iOS 远程设备”,然后选择连接到 Mac 生成主机的设备:

    在 Visual Studio 中选择远程设备。

  4. 在 Visual Studio 工具栏中,按绿色“开始”按钮,即可在远程设备上启动应用:

    Visual Studio iOS 设备调试目标选择。

注意

另一种将 .NET MAUI iOS 应用部署到设备的方法是使用热重启。 热重启可从 Visual Studio 将 .NET MAUI 应用部署到 64 位本地 iOS 设备,而无需 Mac 生成主机。 有关详细信息,请参阅使用热重启部署 iOS 应用

运行自动预配

自动预配启用后,如果发生以下任何情况,Visual Studio 将在必要时重新运行自动预配过程:

  • 已将 iOS 设备接入 Mac。 会自动检查该设备是否已在 Apple 开发者帐户中注册。 如果未注册,则会添加该设备并生成包含该设备的新的预配配置文件。
  • 应用的捆绑 ID 发生更改。 会更新此应用 ID,创建包含此应用 ID 的新预配配置文件。
  • 在 Entitlements.plist 文件中会启用一项受支持的功能。 会将此项功能添加到应用 ID,并生成包括更新后应用 ID 的新预配配置文件。 当前并非所有功能均受支持。 有关功能的详细信息,请参阅功能

通配符 App ID

自动预配将默认尝试创建并使用通配符应用 ID 和预配配置文件,而不是基于应用的捆绑包标识符的显式应用 ID。 通配符应用 ID 可以减少 Apple 开发者帐户中需要维护的配置文件和 ID 的数量。 有关通配符应用 ID 的详细信息,请参阅创建开发预配配置文件

在某些情况下,应用的权利需要精确 App ID。 以下权利不支持通配符 App ID:

  • 应用组
  • 关联域
  • Apple Pay
  • Game Center
  • HealthKit
  • HomeKit
  • 热点
  • 应用内购买
  • 多路径
  • NFC
  • 个人 VPN
  • 推送通知
  • 无线配件配置

如果应用使用其中一个权限,Visual Studio 将尝试创建一个显式应用 ID。

故障排除

新的 Apple 开发者帐户可能需要几个小时才能获得批准。 帐户获得批准前,你无法启用自动预配。

如果自动预配过程失败,并显示错误消息 Authentication Service Is Unavailable,请登录到 App Store ConnectApple 开发者帐户,检查你是否已接受最新的服务协议。

在本地密钥链找不到证书

如果使用多台计算机进行开发,在尝试配置计算机上的自动配置时可能会收到以下错误信息:“在尝试自动配置项目时出现错误:'Certificate: Apple Development: Create via API (Key ID)' 已经存在,但在本地密钥链中找不到。 它可能是在另一台开发计算机上创建的。 从该计算机导入证书和私钥,或撤销证书和私钥,然后重试自动创建新的证书和私钥。”:

找不到证书时自动预配失败的屏幕截图。

出现这种情况的原因是,使用多台计算机进行开发时,自动预配无法消除计算机间手动复制证书的需要。 这是因为创建证书的私钥只存在于创建证书的计算机上。

要检查开发计算机中是否缺少所需的证书,请在 Visual Studio 中转到“工具”>“选项”>“Xamarin”>“Apple 帐户”。 然后,在“Apple 开发人员帐户”对话框中,选择一个团队并单击“查看详细信息...”按钮:

证书不在密钥链中时“详细信息”窗口的屏幕截图。

如果计算机上未安装所需的证书,“详细信息”窗口将显示证书状态为“不在密钥链中”。 在此应用场景下,必须从创建该证书的计算机导出特定证书(采用 .p12 格式),然后通过“导入证书”按钮导入到 Visual Studio。

注意

  • 要将证书从一台 Mac 复制到另一台 Mac,请从创建证书的 Mac 上的密钥链访问中导出证书,然后将其导入到另一台 Mac 上的密钥链访问中。
  • 如果要将证书从 Mac 复制到 Windows 计算机,请从 Mac 上的密钥链访问中导出证书,然后在 Windows 计算机上通过“导入证书”按钮将其导入 Visual Studio。
  • 无法将 Visual Studio 在 Windows 计算机上创建的证书复制到另一台计算机,因为它受到密码保护。

导入证书后,Visual Studio 将显示其状态为“有效”:

将证书添加到密钥链时“详细信息”窗口的屏幕截图。

然后,Visual Studio 才可以自动预配项目。