iOS 功能

在 iOS 上,.NET Multi-platform App UI (.NET MAUI) 应用在沙盒中运行,沙盒提供一套规则,用于限制在应用和系统资源或用户数据之间的访问。 Apple 提供各种功能,也称为“App 服务”,作为扩展功能和拓宽 iOS 应用功能范围的一种方式。 通过这些功能,你可以向应用添加与平台功能的更深入集成,例如与 Siri 的集成。 有关这些功能的详细信息,请参阅 developer.apple.com 上的功能

这些功能将被添加到应用的预配配置文件中,并在对应用进行代码签名时使用。 预配配置文件必须包含一个应用 ID,该 ID 与应用的捆绑标识符匹配,并启用了所需的功能。 可在 Visual Studio 中自动创建此预配配置文件,也可在 Apple 开发人员帐户中手动创建此预配配置文件。

权利与功能概念密切相关。 它们都请求扩展应用运行中的沙盒,以使其具有附加功能。 开发应用时通常会添加权利,而对应用进行代码签名以进行分发时,通常会添加功能。 但是,启用自动预配后,向应用添加某些权利也会在其预配配置文件中更新应用的功能。 有关权利的详细信息,请参阅权利

使用 Visual Studio 添加功能

可将功能添加到 Visual Studio 中的预配配置文件。 此方法需要使用自动预配,且仅适用于部分功能。 有关自动预配的详细信息,请参阅 iOS 应用的自动预配

以下列表显示了可以使用 Visual Studio 自动预配的功能:

  • HealthKit
  • HomeKit
  • 热点配置
  • 应用间音频
  • 多路径
  • 网络扩展
  • 近场通信标记读取器
  • 个人 VPN
  • Siri
  • 无线附件配置

在 Visual Studio 中,所有功能都将被添加到应用的 Entitlements.plist 文件中。 上面列出的功能也会被添加到预配配置文件。 有关权利的详细信息,包括如何将权利文件添加到项目,请参阅权利

若要在 Visual Studio 中添加功能:

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

  2. 在 Visual Studio 中,为项目启用自动预配。 有关详细信息,请参阅启用自动预配

  3. 在 Visual Studio 中,将 Entitlements.plist 文件添加到项目。 有关详细信息,请参阅添加 Entitlements.plist 文件

  4. 在“解决方案资源管理器”中,双击 .NET MAUI 应用项目的 Platforms > iOS 文件夹中的 Entitlements.plist 文件,在权利编辑器中将其打开。

  5. 在权利编辑器中,选择并配置应用所需的任何权利:

    Visual Studio iOS 权利编辑器。

  6. 保存对 Entitlements.plist 文件的更改,将权利键/值对添加到该文件,并将应用服务添加到你的应用 ID。

对于某些功能,可能还需要在 Info.plist 中设置隐私密钥。

在 Apple 开发人员帐户中添加功能

所有功能都可以添加到 Apple 开发人员帐户中的应用预配配置文件中。 此方法需要使用手动预配,并且适用于所有功能。 有关手动预配的详细信息,请参阅 iOS 应用的手动预配

在 Apple 开发人员帐户中添加功能是一个多步骤过程,需要创建应用 ID、创建预配配置文件并启用手动预配。

向预配配置文件添加新功能时,还应将相同的功能添加到应用的 Entitlements.plist 文件,并确保应用使用此文件。 有关详细信息,请参阅权利。 对于某些功能,可能还需要在 Info.plist 中设置隐私密钥。

使用应用服务创建应用 ID

应用 ID 类似于反向 DNS 字符串,该字符串唯一标识应用,且需要有应用 ID 才能标识要分发的应用: 应用 ID 应与应用的捆绑标识符相同。

重要

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

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

有两种类型的应用 ID - 显式和通配符。 显式应用 ID 对单个应用是唯一的,通常采用 com.domainname.myid 形式。 显式应用 ID 允许将一个具有匹配捆绑标识符的应用安装到设备。 对于启用应用特定功能的应用,需要设置显式应用 ID。

可以使用以下步骤创建显式应用 ID:

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

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

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

  4. “注册应用 ID”页中,提供说明并将捆绑 ID 设置为“显式”。 然后,输入采用 com.domainname.myid 格式的应用 ID:

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

  5. “注册应用 ID”页中,在“功能”“应用服务”选项卡下启用所需的功能:

    已启用的功能的屏幕截图。

  6. “注册应用 ID”页中,单击“继续”按钮。

  7. “确认应用 ID”页中,查看信息,然后单击“注册”按钮。 如果已成功注册应用 ID,你将返回到 Apple 开发者帐户的“标识符”部分。

  8. “标识符”页中,单击刚刚创建的应用 ID。

  9. “编辑应用 ID 配置”页中,任何需要额外设置的已启用功能都将具有“配置”按钮:

    编辑功能的屏幕截图。

    单击任意“配置”按钮以配置已启用的功能。 有关详细信息,请参阅 developer.apple.com 上的配置应用功能

创建预配配置文件

创建应用 ID 后,必须为应用 ID 创建预配配置文件。 这要求之前已创建签名证书,并将设备添加到你的 Apple 开发人员帐户。 有关详细信息,请参阅创建签名证书添加设备

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

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

  2. 在“Register a New Provisioning Profile”页中的“Development”部分选择“iOS App Development”(或“Distribution”部分中的分发配置文件类型),然后单击“Continue”按钮:

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

  3. 在“Generate a Provisioning Profile”页中,选择你的应用 ID,然后单击“Continue”按钮:

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

  4. 在“Generate a Provisioning Profile”页中,选择要包含在预配配置文件中的证书,然后单击“Continue”按钮:

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

  5. 在“Generate a Provisioning Profile”页中,选择要在其上安装应用的设备,然后单击“Continue”按钮。

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

  6. 在“Generate a Provisioning Profile”页中,提供预配配置文件名称,然后单击“Generate”按钮:

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

启用手动预配

创建预配配置文件后,Visual Studio 必须下载该配置文件,并将其设置为项目的预配配置文件:

  1. 在 Visual Studio 中,下载刚刚创建的预配配置文件,以便可用于对应用进行签名。 有关详细信息,请参阅在 Visual Studio 中下载预配配置文件
  2. 在 Visual Studio 中,为项目启用手动预配。 有关详细信息,请参阅启用手动预配

故障排除

以下列表详细介绍了开发使用功能的 .NET MAUI iOS 应用时可能导致问题的常见问题:

  • 确保已在 Apple 开发人员帐户的“Identifiers”部分创建并注册了正确的应用 ID。
  • 确保功能已添加到应用 ID,并且使用正确的值配置了该功能。
  • 确保已在开发计算机上安装预配配置文件,并且应用的 Info.plist 文件使用的是与应用 ID 完全相同的捆绑标识符。
  • 确保应用的 Entitlements.plist 文件已启用正确的权利。
  • 确保已在 Info.plist 中设置任何所需的隐私密钥。
  • 确保应用使用 Entitlements.plist 文件。