5

我已按照此答案中提到的步骤创建开发证书和配置文件。我正在尝试在真实设备中实现 FCM 并运行Nativescript应用程序。以下是我构建项目所遵循的步骤:

  1. 进口规定appbuilder provision import path/to/provision
  2. 在钥匙串中安装了开发证书。
  3. 导出 .p12 文件并保存到本地磁盘。
  4. 进口证书与appbuilder certificate import path/to/p12/cert
  5. 创建构建appbuilder build ios --provision "XXXX" --certificate "XXXX"

但它确实给了我错误

证书不包含在规定的证书中

如果我做错了什么,请纠正我。如果您经历过这个,请提出一些解决方案,因为我对这些东西和 Nativescript 是新手。

PS我也尝试为appbuilder网站提供服务,它还在证书字段中显示了一些警告

这是APNS许可

在此处输入图像描述


更新


正如@Eddy Verbruggen (作者NativeScript Firebase 插件)所提到的

我在收到这封电子邮件后询问了 Telerik,他们确认这是他们浏览器客户端中的一个错误,并希望尽快修复它。他们为此创建了一张票。

4

2 回答 2

2

在教程中,他没有检查应用程序 ID 中的推送通知,请确保在您的应用程序 ID 中,您启用了推送通知作为屏幕截图并带有绿色圆圈

在此处输入图像描述

于 2016-10-11T12:43:48.217 回答
1

证书不包含在规定的证书中

当.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 导出加密身份的更多信息,请参阅导出加密身份
于 2016-10-12T15:26:48.230 回答