iOS内置{N}的证书和规定

iOS内置{N}的证书和规定,ios,apple-push-notifications,nativescript,firebase-cloud-messaging,telerik-appbuilder,Ios,Apple Push Notifications,Nativescript,Firebase Cloud Messaging,Telerik Appbuilder,我已经按照中提到的步骤创建了开发证书和配置文件。我正在尝试实现FCM并在实际设备中运行Nativescript应用程序。以下是我构建项目所遵循的步骤: 使用appbuilder配置导入路径/到/配置导入的配置 已在密钥链中安装开发证书 导出.p12文件并保存到本地磁盘 导入的证书具有appbuilder证书导入路径/to/p12/cert 使用appbuilder构建ios创建构建--设置“XXXX”--证书“XXXX” 但它确实给了我错误 该证书不包括在规定的证书中 如果我做错了什么,请纠正我

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

  • 使用appbuilder配置导入路径/到/配置导入的配置
  • 已在密钥链中安装开发证书
  • 导出.p12文件并保存到本地磁盘
  • 导入的证书具有
    appbuilder证书导入路径/to/p12/cert
  • 使用appbuilder构建ios创建构建--设置“XXXX”--证书“XXXX”
  • 但它确实给了我错误

    该证书不包括在规定的证书中

    如果我做错了什么,请纠正我。如果你经历过这个问题,一定要提出一些解决方案,因为我对这个东西和Nativescript还不熟悉

    另外,我还试图为appbuilder站点提供一些保护,它在证书字段中也显示了一些警告

    这里是APNS权限


    更新


    如@Eddy Verbrugen(作者)所述

    收到这封邮件后,我问了Telerik,他们确认这是他们的浏览器客户端中的一个bug,希望能尽快修复。他们为它制作了一张票


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

    该证书不包括在规定的证书中

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

    通过提取.p12公钥并在.mobileProvision的xml部分的
    DeveloperCertificates
    数组下搜索匹配项,可以验证.mobileProvision是否绑定到此特定证书

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

    openssl pkcs12 -in <path_to_.p12> -clcerts -nokeys -out <path_to_resulting_public_key.pem> && cat <path_to_resulting_public_key.pem>
    
    opensslpkcs12-in-clcerts-nokeys-out&&cat
    
    知道公钥后,请验证它是否列在.mobileProvision文件的
    DeveloperCertificates
    下。您可以通过运行下面的命令或简单地使用文本编辑器(如记事本+)打开.mobileprovision来完成此操作

    security cms -D -i <path_to_.mobileprovision> | grep -f <path_to_resulting_public_key.pem>
    
    security cms-D-i | grep-f
    
    我还建议从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
    
    appbuilder证书//列出证书
    appbuilder证书删除//删除证书
    appbuilder条款//列表条款
    appbuilder配置删除//删除配置
    appbuilder配置删除//删除配置
    appbuilder配置导入路径/到/配置
    appbuilder证书导入路径/to/p12/cert
    
    编辑:
    注意:您可能还会发现以下{N}插件很有趣-

    有关如何生成APNS证书和mobileprovision文件的步骤

    • 验证您是否已在AppBuilder中创建并添加了一对匹配的证书和设置配置文件。有关证书和配置配置文件的更多信息,请参阅
    • 验证设置配置文件中的应用ID是否已为推送通知启用。在中,从列表中选择标识符并查看已启用的服务。如果需要,单击编辑并启用缺少的功能。如果修改现有应用程序ID,请确保重新创建匹配的配置文件并将其导入AppBuilder
    • 验证是否已在“项目属性”对话框中为应用程序设置了正确的应用程序ID
    • 验证是否已在中创建Apple推送通知服务SSL证书,并将其添加到AppBuilder中
    • 验证Apple推送通知服务SSL证书的类型是否与您的证书类型和用于对应用程序进行代码签名的配置文件相匹配。例如,两者都应用于开发或生产
    • 验证是否已导出Apple推送通知服务SSL加密标识的P12文件。有关如何从AppBuilder导出加密标识的详细信息,请参阅

    检查密钥链中证书中的私钥-它是否正确导入干燥导入两次,导入时不会出现错误,因此我认为它工作正常。有什么方法可以确认吗?我正在用CLI做这件事。我没有使用xCode,因为appBuilder项目中没有平台文件夹。在这种情况下,我有许多用于开发和分发的证书。我如何确保条款要求的配置文件存在?恐怕它不存在。下一步应该做什么?目前的证书也是从其他项目分发的。是的,它有绿色圆圈。我仔细检查了它。如果我在Nativescript项目中使用它,相同的证书和规定也有效,但在appBuilder中不起作用。我想它没有列出,因为我尝试了数据块中的某些行和查找。你能帮我生成配置文件与匹配的.pem文件吗?编辑答案。我希望这有帮助。关于你引用的插件,如果我不需要导航到不同的页面,它可以正常工作。但我有一个要求,根据通知类型和有效负载,我必须导航。这个插件不提供应用程序状态,这样我就可以知道应用程序是否在前台,然后我就不必导航,如果应用程序在后台,我点击通知,那么应用程序应该打开特定页面。