使用推送通知签署 iOS 内部部署应用程序

Signing iOS application for internal deployment with Push Notifcations

我们有一个使用 Xamarin 创建的 iOS 应用程序。

我们开始使用 Apple 推送通知服务,我已经更新了 developer.apple.com 中的应用标识符以使用推送通知功能。

我已将我们的 Entitlements Plist 更新为我们的开发和测试环境正在使用的那个:

<key>aps-environment</key>
<string>development</string>

这在将用于生产的 Plist 中:

<key>aps-environment</key>
<string>production</string>

我能够使用“手动配置”从 Visual Studio 2019 年内将已签名的应用程序部署到本地设备。我还可以从 Azure

向已安装的应用程序发送推送通知

我们的测试团队从 AppCenter 下载构建并使用 YAML 管道部署到 AppCenter。

我查看了该管道用于创建测试版本的供应配置文件,它有

<key>aps-environment</key>
<string>production</string>

这与 Entitlements PList 中的内容不匹配,并且在应用构建和签名时它不会打开。任何试图打开该应用程序的尝试都会出现一个错误对话框,上面写着

Unable to install because its integrity could not be verified

aps 环境不同于 Entitlements.Plist 的配置文件。这能解释那个错误吗?

我可以编辑配置文件的 XML 并更改 aps 环境吗?

如果不是,如何从 Apple Dev 门户选择要在我的自动构建中使用的配置文件。我有以下类型可以选择

我假设它是开发版。我尝试使用开发证书,但我需要将其与 InstallAppleCertificate 任务所需的正确证书配对。

当我切换到开发配置文件时,我在尝试构建和签署应用程序时遇到以下错误

No iOS signing identities match the specified provisioning profile 'ecc36e48-b330-4341-834f-34747ebc010e'

您的测试团队应该使用 Ad Hoc。开发是为了本地调试; Ad Hoc 适用于测试人员; AppStore 用于分发到 public。使用 AppStore 配置文件进行测试的唯一方法是通过 TestFlight。 Development 和 Ad Hoc 需要在开发人员门户中设置 UUID 并添加到配置文件中。任何非开发都被视为 APS 的“生产”。

Our test team downloads builds from AppCenter and we deploy to AppCenter using a YAML Pipeline.

你在做iPhone |临时构建?在您的 csproj 中,您是否选择了正确的权利和配置文件?这些通常位于 CodesignKeyCodesignEntitlements xml 标签下。