证书不包含在规定的证书中
当.mobileprovision配置文件中没有与您使用的加密身份匹配的公钥时,通常会生成此错误消息。
您可以通过提取.p12公钥并在.mobileprovison的 xml 部分中的数组下搜索匹配项来验证.mobileprovison是否绑定到此特定证书。<key>DeveloperCertificates</key>
您可以使用 .p12 加密身份从 .p12 中提取公钥openssl
。
openssl pkcs12 -in <path_to_.p12> -clcerts -nokeys -out <path_to_resulting_public_key.pem> && cat <path_to_resulting_public_key.pem>
一旦您知道公钥,请验证它是否列<key>DeveloperCertificates</key>
在您的.mobileprovision文件中。您可以通过运行以下命令或简单地使用文本编辑器(例如 notepad++) 打开.mobileprovision来执行此操作
security cms -D -i <path_to_.mobileprovision> | grep -f <path_to_resulting_public_key.pem>
我还建议从您的 appbuilder 配置文件中删除所有 .mobileprovision 文件和证书,然后重新导入有问题的项目。您可以通过运行以下命令来执行此操作:
appbuilder certificate // List certificates
appbuilder certificate remove <name or index> // Delete cerificates
appbuilder provision // List provisions
appbuilder provision remove <provision_id> // Delete provisions
appbuilder provision remove <provision_id> // Delete provisions
appbuilder provision import path/to/provision
appbuilder certificate import path/to/p12/cert
编辑:
注意:您可能还会发现以下 {N} 插件很有趣 - https://github.com/NativeScript/push-plugin
有关如何生成 APNS 证书和 mobileprovision 文件的步骤。
- 验证您是否已在 AppBuilder 中创建并添加了一对匹配的证书和配置文件。有关证书和配置文件的更多信息,请参阅为 iOS 应用程序配置代码签名。
- 验证供应配置文件中的 App ID 是否已启用推送通知。在iOS Developer Center 的 Identifiers 部分,从列表中选择您的标识符并查看启用的服务。如果需要,单击编辑并启用缺少的功能。如果您修改现有 App ID,请确保重新创建匹配的配置文件并将其导入 AppBuilder。
- 确认您已在“项目属性”对话框中为您的应用程序设置了正确的 App ID。
- 验证您是否已在iOS 开发者中心的证书部分中创建了 Apple Push Notification 服务 SSL 证书并将其添加到 AppBuilder 中。
- 验证 Apple Push Notification 服务 SSL 证书的类型是否与您的证书类型和用于对您的应用程序进行代码签名的配置文件相匹配。例如,两者都应该用于开发或生产。
- 确认您已导出 Apple 推送通知服务 SSL 加密身份的 P12 文件。有关如何从 AppBuilder 导出加密身份的更多信息,请参阅导出加密身份。