适用于iOS的证书和规定{N}

时间:2016-10-05 06:13:36

标签: ios apple-push-notifications nativescript firebase-cloud-messaging telerik-appbuilder

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

  1. 使用appbuilder provision import path/to/provision
  2. 导入的条款
  3. 在密钥链中安装开发证书。
  4. 导出.p12文件并保存到本地磁盘。
  5. 使用appbuilder certificate import path/to/p12/cert
  6. 导入的证书
  7. 使用appbuilder build ios --provision "XXXX" --certificate "XXXX"
  8. 创建构建

    但它确实给了我错误

      

    证书不包含在条款证书

    如果我做错了,请纠正我。如果你已经通过了这个,我建议一些解决方案,因为我是这个东西和Nativescript的新手。

    P.S。我也尝试过为appbuilder网站提供服务,它还会在证书字段

    中显示一些警告

    以下是 APNS权限

    enter image description here

    更新

    如@Eddy Verbruggen(作者NativeScript Firebase plugin

    所述
      

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

2 个答案:

答案 0 :(得分:2)

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

enter image description here

答案 1 :(得分:1)

  

证书不包含在条款的证书中

如果 .mobileprovision 配置文件中没有与您使用的加密标识相匹配的公钥,则通常会生成此错误消息。

您可以通过提取 .p12 公钥并在<key>DeveloperCertificates</key>数组下搜索匹配来验证 .mobileprovison 是否绑定到此特定证书在 .mobileprovison 的xml部分。

您可以使用openssl从.p12加密标识中提取公钥。

openssl pkcs12 -in <path_to_.p12> -clcerts -nokeys -out <path_to_resulting_public_key.pem> && cat <path_to_resulting_public_key.pem>

知道公钥后,请确认该公钥已​​列在 .mobileprovison 文件中的<key>DeveloperCertificates</key>下。您可以通过运行以下命令或使用文本编辑器(例如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中创建并添加了一对匹配的证书和配置文件。有关证书和配置文件的详细信息,请参阅Configuring Code Signing for iOS Apps
  • 验证配置文件中的App ID是否已启用推送通知。在Identifiers section in the iOS Developer Center中,从列表中选择您的标识符并查看已启用的服务。如果需要,请单击“编辑”并启用缺少的功能。如果您修改现有的App ID,请确保重新创建匹配的配置文件并将其导入AppBuilder。
  • 确认您已在“项目属性”对话框中为应用程序设置了正确的App ID。
  • 确认您已在Certificates section in the iOS Developer Center中创建了Apple推送通知服务SSL证书,并将其添加到AppBuilder中。
  • 验证Apple推送通知服务SSL证书的类型是否与您的应用程序代码签名的证书类型和配置文件相匹配。例如,两者都应该用于开发或生产。
  • 确认您已导出Apple推送通知服务SSL加密身份的P12文件。有关如何从AppBuilder导出加密身份的详细信息,请参阅Export a Cryptographic Identity