iOS 应用的手动预配

手动预配是一种将 .NET Multi-platform App UI (.NET MAUI) iOS 应用部署到设备的方法,通过这种方法可以完全控制创建的预配数据。 使用此方法,你需要在 Apple 开发者帐户中手动创建和管理签名标识、App ID 和预配配置文件,然后必须将此数据下载到 Visual Studio 中。 在开始手动预配过程之前,应确保已将 Apple 开发者帐户添加到 Visual Studio。 有关详细信息,请参阅 Apple 帐户管理

开发团队、证书和配置文件都可以通过访问 Apple 开发人员帐户的 “证书、标识符和配置文件 ”部分进行管理。

创建签名证书

使用手动预配,设置开发设备的第一步是创建签名证书,其中包含开发证书和私钥。

开发证书及其关联密钥可在 Apple 中建立你的标识,并将你与特定设备和配置文件相关联以进行开发。 这类似于将数字签名添加到应用。 Apple 使用这些证书来确保你只能将应用部署到特定设备。

重要说明

在任何时候都只能同时拥有两个 iOS 开发证书。 如果需要创建更多证书,需要撤消现有证书。 使用已撤销证书的计算机不能对应用进行签名。

将 Apple 开发者帐户添加到 Visual Studio 后,需要生成签名证书。

  1. 在 Visual Studio 中,转到“工具”>“选项”>“Xamarin”>“Apple 帐户”
  2. 在“Apple 开发者帐户”对话框中,选择某个团队,然后选择“查看详细信息”
  3. 在“详细信息”对话框中,选择“创建证书”>“iOS 开发”。 如果你拥有正确的权限,将创建新的签名标识并与 Apple 同步。

重要说明

如果 IDE 已与 Mac 生成主机配对,构成签名标识的私钥和证书也将导出到 Mac 生成主机上的“密钥链访问”。 有关详细信息,请参阅通过与 Mac 配对进行 iOS 开发

了解证书密钥对

开发人员配置文件包含证书、证书关联密钥,以及任何与 Apple 开发者帐户关联的预配配置文件。 开发者配置文件有两个版本:一个存在于 Apple 开发者帐户中,另一个位于本地计算机上。 两者之间的区别在于它们所包含的密钥类型:Apple 开发者帐户中的配置文件包含与证书关联的所有公钥,而本地计算机上的副本包含所有私钥。 要使证书生效,密钥对必须匹配。

警告

丢失证书和关联密钥会很麻烦,因为需要撤销现有证书并重新预配任何关联设备。 成功设置开发证书后,请导出备份副本并将其存储在安全位置。 有关如何执行此操作的详细信息,请参阅 help.apple.com 上的导出开发者帐户

预配 iOS 设备进行开发

创建签名证书后,必须设置开发预配配置文件,以便可以将应用部署到设备。 设备必须运行 Xcode 支持的 iOS 版本。

添加设备

创建预配配置文件时,该配置文件必须包含可运行应用的设备。 在选择要添加到预配配置文件的设备之前,必须先将设备添加到 Apple 开发者帐户。 可通过以下步骤添加设备:

  1. 使用 USB 数据线将要预配的设备连接到本地 Mac。

  2. 打开 Xcode 并导航到“窗口”>“设备和模拟器”

  3. 在 Xcode 中,选择“设备”选项卡,然后从连接的设备列表中选择设备

  4. 在 Xcode 中,将“标识符”值复制到剪贴板

    Xcode devices and simulator window with the iOS identifier string location highlighted.

  5. 在 Web 浏览器中,转到 Apple 开发者帐户的设备部分,然后单击 + 按钮。

  6. 在“注册新设备”页中,设置正确的平台并为新设备提供名称。 然后将剪贴板中的标识符粘贴到“设备 ID (UDID)”字段中,再单击“继续”

    Register a device by naming it and entering its unique device identifier.

  7. 在“注册新设备”页中,查看信息,然后单击“注册”

对 .NET MAUI iOS 应用要部署到的任何 iOS 设备重复上述步骤。

创建 App ID

将设备添加到 Apple 开发者帐户后,应创建一个 App ID。 App ID 类似于反向 DNS 字符串,可唯一标识应用,应与应用的捆绑包标识符相同。

重要说明

.NET MAUI 应用的捆绑包标识符以“应用程序 ID”属性的形式存储在项目文件中

  • 在 Visual Studio 的“解决方案资源管理器”中,右键单击 .NET MAUI 应用项目,然后选择“属性”。 然后,导航到“MAUI 共享”>“常规”选项卡。“应用程序 ID”字段会列出捆绑包标识符
  • 在 Visual Studio for Mac 的“解决方案窗口”中,右键单击 .NET MAUI 应用项目,然后选择“属性”。 然后,在“项目属性”窗口中,选择“生成”>“应用信息”选项卡。“应用程序 ID”字段会列出捆绑包标识符

“应用程序 ID”字段的值更新后,Info.plist 中的“捆绑包标识符”的值将自动更新

App ID 有两种类型:

  • 通配符。 通配符 App ID 允许使用单个 App ID 来匹配多个应用,通常采用 com.domainname.* 形式。 通配符 App ID 可用于将大多数应用安装到设备,并且应用于未启用应用特定功能的应用。
  • 精确。 精确 App ID 对于单个应用而言是唯一的,通常采用 com.domainname.myid 形式。 精确 App ID 允许将一个具有匹配捆绑包标识符的应用安装到设备。 精确 App ID 通常用于启用了应用特定功能的应用,例如 Apple Pay 或 Game Center。

建议的方法是创建通配符 App ID,除非应用使用应用特定功能。 有关功能的详细信息,请参阅功能

可以通过以下步骤创建通配符 App ID:

  1. 在 Web 浏览器中,转到 Apple 开发者帐户的标识符部分,然后单击 + 按钮。

  2. 在“注册新的标识符”页,选择“App ID”,然后单击“继续”按钮

  3. 在“注册新的标识符”页,选择应用类型,然后单击“继续”按钮

  4. 在“注册 App ID”页,提供“说明”,并将“捆绑包 ID”设置为“通配符”。 然后,输入采用 com.domainname.* 格式的 App ID,然后单击“继续”按钮

    Screenshot of new App ID registration page with required fields populated.

  5. 在“确认 App ID”页中,查看信息,然后单击“注册”按钮

创建开发预配配置文件

创建 App ID 后,应创建开发预配配置文件。 预配配置文件包含以下信息:哪个应用(或哪些应用,如果是通配符 App ID)与配置文件相关、谁可以使用配置文件(取决于添加的开发人员证书)以及哪些设备可以安装应用。

可以通过以下步骤创建开发预配配置文件:

  1. 在 Web 浏览器中,转到 Apple 开发者帐户的配置文件部分,然后单击 + 按钮。

  2. 在“注册新的预配配置文件”页的“开发”部分中,选择“iOS 应用开发”,然后单击“继续”按钮

    Screenshot of creating a provisioning profile for iOS app development.

  3. 在“生成预配配置文件”页中,选择要使用的 App ID,然后单击“继续”按钮

    Screenshot of adding an App ID to a provisioning profile.

  4. 在“生成预配配置文件”页中,选择要包含在预配配置文件中的证书,然后单击“继续”按钮

    Screenshot of adding a certificate to a provisioning profile.

  5. 在“生成预配配置文件”页中,选择要安装应用的设备,然后单击“继续”按钮

    Screenshot of adding a device to a provisioning profile.

  6. 在“生成预配配置文件”页中,提供预配配置文件名称,然后单击“生成”按钮

    Screenshot of naming a provisioning profile.

  7. 在“生成预配配置文件”页中,(可选)单击“下载”按钮下载预配配置文件

在 Visual Studio 中下载预配配置文件

在 Apple 开发者帐户中创建开发预配配置文件后,Visual Studio 可以下载该文件,使其可用于对应用进行签名。

  1. 在 Visual Studio 中,转到“工具”>“选项”>“Xamarin”>“Apple 帐户”
  2. 在“Apple 开发者帐户”对话框中,选择某个团队并单击“查看详细信息…”按钮
  3. 在“详细信息”对话框中,验证新的配置文件是否显示在“预配配置文件”列表中。 可能需要重启 Visual Studio 以刷新该列表。
  4. 在“详细信息”对话框中,单击“下载所有配置文件”按钮

预配配置文件将下载到 Windows 上,如果 IDE 已与 Mac 生成主机配对,则该配置文件会导出到该主机。 有关详细信息,请参阅通过与 Mac 配对进行 iOS 开发

启用手动预配

手动创建开发预配配置文件并将其安装在 Visual Studio 中后,应将 .NET MAUI 应用项目配置为使用手动预配。

  1. 在“解决方案资源管理器”中,右键单击 .NET MAUI 应用项目,然后选择“属性”。 然后,导航到“MAUI 共享”>“常规”选项卡,并确保“应用程序 ID”字段的值与之前创建的 App ID 的格式相对应

  2. 在项目属性中,导航到“iOS 捆绑包签名”选项卡,并确保在“方案”下拉列表中选择“手动预配”

    Screenshot of bundle signing tab for iOS in Visual Studio.

  3. 在“捆绑包签名”属性中,选择“签名标识”和“预配配置文件”,或将两者设置为“自动”。 当“签名标识”和“预配配置文件”都设置为“自动”时,Visual Studio 将根据 Info.plist 中的捆绑包标识符(这与项目文件中的“应用程序 ID”属性的值相同)选择签名标识和预配配置文件

部署到设备

在 .NET MAUI 应用项目中配置预配后,可以将应用部署到设备。

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

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

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

    Select your remote device in Visual Studio.

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

    Visual Studio iOS device debug target choice.

注意

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

应用程序服务的预配

Apple 提供了一系列精选的应用程序服务(亦称为“功能”),你可以为 .NET MAUI iOS 应用激活这些服务。 这些功能必须同时在预配配置文件(创建 App ID 时)和应添加到 .NET MAUI 应用项目的 Entitlements.plist 文件中配置。 有关功能的详细信息,请参阅权利功能