iOS 应用的手动预配

手动预配是一种将 .NET Multi-platform App UI (.NET MAUI) iOS 应用部署到设备的方法,你可在其中完全控制所创建的预配数据。 使用此方法,可以在 Apple 开发人员帐户中手动创建和管理签名标识、应用 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 配对以进行 iOS 开发

了解证书密钥对

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

警告

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

预配 iOS 设备进行开发

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

添加设备

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

  1. 使用 USB 电缆将要预配的设备连接到本地 Mac。

  2. 打开 Xcode,并导航至“Window > Devices and Simulators”

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

  4. 在 Xcode 中,将“Identifier”值复制到剪贴板:

    Xcode 设备和模拟器窗口,突出显示 iOS 标识符字符串位置。

  5. 在 Web 浏览器中,转到 Apple 开发人员帐户的“Devices”部分,然后单击 + 按钮。

  6. 在“Register a New Device”页上,设置正确的“Platform”,并为新设备命名。 然后,将剪贴板中的标识符粘贴到“Device ID (UDID)”字段,并单击“Continue”

    通过命名设备并输入其唯一设备标识符来注册设备。

  7. 在“Register a New Device”页上,查看信息,然后单击“Register”

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

创建 App ID

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

重要

.NET MAUI 应用的捆绑标识符以应用 ID 属性的形式存储在项目文件中。 在 Visual Studio 的“解决方案资源管理器”中,右键单击 .NET MAUI 应用项目,然后选择“属性”。 然后,导航到“MAUI 共享”>“常规”选项卡。“应用 ID”字段列出捆绑标识符。

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

应用 ID 有两种类型:

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

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

可以使用以下步骤创建通配符应用 ID:

  1. 在 Web 浏览器中,转到 Apple 开发人员帐户的“Identifiers”部分,然后单击 + 按钮。

  2. “注册新标识符”页中,选择“应用 ID”,然后单击“继续”按钮。

  3. 在“Register a New Device”页中,选择“App”类型,然后单击“Continue”按钮。

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

    新应用 ID 注册页的屏幕截图,其中必填字段已填充。

  5. 在“Confirm your App ID”页中,查看信息,然后单击“Register”按钮。

创建开发预配配置文件

创建好应用 ID 后,应创建开发预配配置文件。 此预配配置文件包含以下信息:与此配置文件相关的应用(如果是通配符应用 ID,则为多个应用),谁可以使用配置文件(具体取决于添加了哪些开发者证书),以及哪些设备可以安装应用。

可以使用以下步骤创建开发预配配置文件:

  1. 在 Web 浏览器中,转到 Apple 开发人员帐户的“Profiles”部分,然后单击 + 按钮。

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

    为 iOS 应用开发创建预配配置文件的屏幕截图。

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

    将应用 ID 添加到预配配置文件的屏幕截图。

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

    将证书添加到预配配置文件的屏幕截图。

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

    将设备添加到预配配置文件的屏幕截图。

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

    命名预配配置文件的屏幕截图。

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

下载预配配置文件

在 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”字段的值与之前创建的应用 ID 格式一致。

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

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

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

部署到设备

在 .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 应用

应用程序服务的预配

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