发布用于内部分发的 iOS 应用
内部分发允许 Apple 开发人员企业计划成员在内部向同一组织内的其他成员分发应用。 它的优势在于无需 App Store 审核,且对可安装应用的设备数量没有限制。 但是,Apple 开发人员企业计划成员无权访问 App Store Connect,因此许可证持有人负责分发应用。
分发 iOS 应用需要使用预配配置文件预配应用。 预配配置文件是一种包含了代码签名信息,以及应用程序标识和预期分发机制的文件。
若要分发 .NET Multi-platform App UI (.NET MAUI) iOS 应用,需要生成特定于它的分发预配配置文件 。 此配置文件支持对应用进行数字签名并发布,以便将其安装在 iOS 设备上。 内部分发预配配置文件包含应用 ID 和分发证书。 可以将应用部署到设备以进行测试时使用的相同应用 ID。 但是,如果还没有分发证书,则需要创建分发证书来标识组织。
创建内部分发预配配置文件的过程如下所示:
创建分发证书
分发证书用于确认标识。 在创建分发证书之前,应确保已将 Apple 开发人员帐户添加到 Visual Studio。 有关详细信息,请参阅 Apple 帐户管理。
如果还没有分发证书,则只需创建一个分发证书。 必须使用 Apple 开发人员帐户的 Apple ID 创建分发证书。
在 Visual Studio 中创建分发证书:
- 在 Visual Studio 中,转到“工具” > “选项” > “Xamarin” > “Apple 帐户”。
- 在“Apple 开发人员帐户”对话框中,选择一个团队,然后单击“查看详细信息…”按钮。
- 在“详细信息”对话框中,单击“创建证书”并选择“iOS 分发”。 将创建新的签名标识,并且会与 Apple 同步,前提是你具有正确的权限。
重要说明
如果 IDE 已配对,构成签名标识的私钥和证书也将导出到 Mac 生成主机上的密钥链访问。 有关详细信息,请参阅与 Mac 配对以进行 iOS 开发。
了解证书密钥对
分发配置文件包含证书、关联密钥以及与 Apple 开发人员帐户关联的任何预配配置文件。 分发配置文件有两个版本,一个在 Apple 开发人员帐户中,另一个在本地计算机上。 两者的区别是所含密钥的类型:Apple 开发人员帐户中的配置文件包含与证书关联的所有公钥,而本地计算机上的副本包含所有私钥。 为了使证书生效,密钥对必须匹配。
警告
丢失证书和关联密钥会很麻烦,因为需要撤销现有证书并重新创建预配配置文件。
创建分发配置文件
内部分发预配配置文件使 .NET MAUI iOS 应用能够进行数字签名以供发布。 内部分发预配配置文件包含应用 ID 和分发证书。
创建 App ID
识别正在分发的应用时,需要使用应用 ID。 应用 ID 类似于反向 DNS 字符串,是应用的唯一识别标识,应当与应用的捆绑标识符相同。 可以使用在将应用部署至设备进行测试时使用的相同应用 ID。
有两种类型应用 ID:
- 通配符。 通过通配符应用 ID 可以使用单个应用 ID 匹配多个应用,其形式通常为
com.domainname.*
。 通配符应用 ID 可用于分发多个应用,并且应当用于不启用特定于应用功能的应用。 - 精确。 显式应用 ID 对单个应用是唯一的,通常采用
com.domainname.myid
的形式。 显式应用 ID 允许分发一个具有匹配捆绑标识符的应用。 显式程序 ID 通常用于启用了应用特定功能的应用,如 Apple Pay 或 Game Center。
有关功能的详细信息,请参阅功能。
创建新的应用 ID。
在 Apple 开发者帐户中,导航到“证书、ID 和配置文件”。
在“证书、标识符和配置文件”页上,选择“标识符”选项卡。
在“Identifiers”页上,单击 + 按钮以创建新应用 ID。
在“Register a new identifier”页上,选择“App IDs”单选按钮,然后单击“Continue”按钮:
在“Register an App ID”页上,输入说明,然后选择“Explicit”或“Wildcard”捆绑 ID 单选按钮。 然后,以反向 DNS 格式输入应用的捆绑 ID:
重要
输入的捆绑 ID 必须与应用项目中 Info.plist 文件中的捆绑标识符相对应。
.NET MAUI 应用的捆绑标识符以应用 ID 属性的形式存储在项目文件中。 在 Visual Studio 的“解决方案资源管理器”中,右键单击 .NET MAUI 应用项目,然后选择“属性”。 然后,导航到“MAUI 共享”>“常规”选项卡。“应用 ID”字段列出捆绑标识符。
更新“应用 ID”字段的值时,Info.plist 中的“捆绑标识符”的值将自动更新。
在“注册应用 ID”页上,选择应用使用的任何功能。 必须在此页上和应用项目中的 Entitlements.plist 文件中配置任何功能。 有关详细信息,请参阅功能和权利。
在“注册应用 ID”页上,单击“继续”按钮。
在“注册应用 ID”页上,输入部署详细信息(如果有),然后再单击“继续”按钮。
在“确认应用 ID”页上,单击“注册”按钮。
创建预配配置文件
创建应用 ID 后,应创建分发预配配置文件。 此配置文件支持对应用进行数字签名并发布,以便将其安装在 iOS 设备上。
要创建分发预配配置文件,请执行以下操作:
在 Apple 开发人员帐户的“证书、标识符和配置文件”页中,选择“配置文件”选项卡。
在“配置文件”选项卡中,单击 + 按钮创建新配置文件。
在“注册新的预配配置文件”页中,选择“内部”单选按钮,然后单击“继续”按钮:
在“生成预配配置文件”页的“应用 ID”下拉列表中,选择之前创建的应用 ID,然后单击“继续”按钮:
在“生成预配配置文件”页中,选择对应于分发证书的单选按钮,然后单击“继续”按钮:
在“生成预配配置文件”页中,输入预配配置文件的名称,然后单击“生成”按钮:
注意
记下预配配置文件名称,因为对应用签名时需要用到它。
在“生成预配配置文件”页中,可以选择单击“下载”按钮下载预配配置文件。
注意
现在无需下载预配配置文件。 你将在 Visual Studio 中执行此操作。
在 Visual Studio 中下载预配配置文件
在 Apple 开发人员帐户中创建分发预配配置文件后,Visual Studio 可以下载它,以便用于对应用进行签名:
- 在 Visual Studio 中,转到“工具” > “选项” > “Xamarin” > “Apple 帐户”。
- 在“Apple 开发人员帐户”对话框中,选择你的团队,然后单击“查看详细信息”。
- 在“详细信息”对话框中,验证新配置文件是否出现在“预配配置文件”列表中。 可能需要重启 Visual Studio 以刷新该列表。
- 在“详细信息”对话框中,单击“下载所有配置文件”。
预配配置文件在 Windows 上下载,如果 IDE 已配对,则导出到 Mac 生成主机。 有关详细信息,请参阅与 Mac 配对以进行 iOS 开发。
发布应用
Visual Studio 可以发布用于内部分发的 .NET MAUI iOS 应用:
在 Visual Studio 中,确保 IDE 已与 Mac 生成主机配对。 有关详细信息,请参阅与 Mac 配对以进行 iOS 开发。
在 Visual Studio 工具栏中,使用“调试目标”下拉列表选择“iOS 远程设备”,然后选择“远程设备”:
在 Visual Studio 工具栏中,使用“解决方案配置”下拉列表从调试配置更改为发布配置:
在“解决方案资源管理器”中,右键单击 .NET MAUI 应用项目,然后选择“属性”。 然后,导航到“iOS 捆绑签名”选项卡并确保“方案”设置为“手动预配”,“签名标识”设置为“分发(自动)”,并将“预配配置文件”设置为“自动”:
这些设置将确保 Visual Studio 将根据 Info.plist 中的捆绑标识符(这与项目文件中应用程序 ID 属性的值相同)选择正确的预配配置文件。 或者,将“签名标识”设置为相应的分发证书,并将“预配配置文件”设置为在 Apple 开发人员帐户中创建的配置文件。
在“解决方案资源管理器”中,右键单击 .NET MAUI 应用项目,然后选择“发布...”:
“存档管理器”将打开,Visual Studio 将开始存档应用程序包:
存档过程使用你在“iOS 捆绑包签名”选项卡中指定的证书和预配配置文件对应用进行签名,以用于所选解决方案配置。
在存档管理器中,存档完成后,请确保已选择档案,然后选择“分发...”按钮开始打包应用以供分发的过程:
将显示“分发 - 选择频道”对话框。
在“分发 - 选择渠道”对话框中,选择“企业”按钮:
在“分发 - 签名标识”对话框中,选择签名标识和预配配置文件:
注意
应使用为应用和所选分发频道创建的签名标识和预配配置文件。
在“分发 - 签名标识”对话框中,选择“另存为”按钮并输入文件名。 然后,应用将重新签名并发布到文件系统上的 .ipa 文件。
有关使用命令行接口 (CLI) 发布 iOS 应用的信息,请参阅使用命令行发布 iOS 应用。
内部应用可以通过安全网站或移动设备管理 (MDM).进行分发。 这两种方法都要求应用准备好分发,其中包括准备清单。 有关详细信息,请参阅 support.apple.com 上的将专有内部应用分发到 Apple 设备。