我已按照this answer中提到的步骤创建开发证书和配置文件。我正在尝试实现FCM并在真实设备中运行 Nativescript 应用程序。以下是我为构建项目所遵循的步骤:
appbuilder provision import path/to/provision
appbuilder certificate import path/to/p12/cert
appbuilder build ios --provision "XXXX" --certificate "XXXX"
但它确实给了我错误
证书不包含在条款证书
中
如果我做错了,请纠正我。如果你已经通过了这个,我建议一些解决方案,因为我是这个东西和Nativescript的新手。
P.S。我也尝试过为appbuilder网站提供服务,它还会在证书字段
中显示一些警告以下是 APNS权限
更新:
如@Eddy Verbruggen(作者NativeScript Firebase plugin)
所述我在收到此电子邮件后询问了Telerik,他们确认这是他们浏览器客户端中的一个错误,并希望尽快修复。他们为它创造了一张票。
答案 0 :(得分:2)
答案 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文件的步骤。