在已发布的iOS应用中启用推送通知的步骤是什么?

时间:2015-07-22 08:32:23

标签: ios xcode apple-push-notifications code-signing

我使用Appery平台开发混合应用。对于已发布到Apple Store的其中一个应用,我想启用推送通知。设备正在使用DeviceID和Token正确注册。但是,当我尝试发送推送通知时,它们不会通过,而平台只会返回此错误,这对我来说并不太多:

  

描述:尝试与Apple服务器通信时发生不可恢复的错误:null       设备数量:100

我尝试了所有可能的尝试来徒劳地解决这个问题。 大多数教程和问题都是关于创建启用推送通知的新应用程序,而不是启用已发布应用程序的推送通知。因此,它产生了相当多的混乱,因为我应该从哪里开始,我应该更新什么以及我应该留下什么(例如,我无法从头开始,我的应用程序已经使用应用程序ID注册)

这里我描述了我为我的应用启用PN的步骤

  1. 在Apple开发者帐户中,我从App IDs菜单中选择了Identifiers,然后我选择了我的目标应用ID,点击了Edit,勾选了Push Notification选项,它变成了{{ 1}}用黄色灯泡。
  2. 然后,在同一页面中,我点击configurable下的Create Certificate
  3. 我上传了很久以前发布App时创建的CSR文件。我下载了Production SSL Certificate文件
  4. 正如here所指出,我双击aps_production.cer文件将其安装在Keychain Access应用程序中,我可以在Keychain中看到“Apple Production IOS推送服务证书及其下方的私钥”。 / LI>
  5. 右键单击Keychain中的证书并导出.p12文件
  6. 返回Apple开发人员:在aps_production.cer菜单下,我选择了provisioning profiles并创建了新的配置文件:分发 - > App Store选项 - >继续 - >我的应用ID继续 - >我的应用程序第一次发布时使用的证书(此处的证书不是我刚才生成的SSL推送通知证书。它是我第一次发布应用程序时创建的证书。)
  7. 我下载了配置文件。
  8. 我将所有证书添加到我的平台(基本上是.p12文件和配置文件。捆绑ID是相同的)。然后,我生成了我在xCode中打开的xcode项目
  9. 在xCode中,在distribution下,我选择了我创建应用的证书(这是唯一显示的选项),然后我双击了我的配置文件,显示code Signing个选项(我对此步骤持怀疑态度)。我成功构建并验证了项目,将其提交到App store,它出现在预发布部分,并且收到了Test Flight邀请。
  10. 我在iPhone和iPad上下载了应用程序,一旦我启动了应用程序,我可以看到它在后端正确注册。
  11. 当我发送推送通知(来自Appery平台)时,我收到上述错误
  12. Appery支持告诉我,这与认证不匹配有关
  13. 现在我的问题是,我的步骤导致错误是什么?缺少什么或没有正确完成?

    这些是我试图解决问题的其他参考资料

3 个答案:

答案 0 :(得分:0)

我无法清楚地记得,但你需要转换p12(如上面的链接)并拥有转换后的文件并将在服务器上运行。像这样的东西。

答案 1 :(得分:0)

我不确定,但我认为问题可能在第4步& 5。 试试我的步骤:

  1. 展开此选项,然后右键单击“Apple Development Push Services”>导出“Apple Development Push Services ID123”。将此保存为apns-dev-cert.p12文件,您可以访问它。

  2. 对扩展“Apple Development Push Services”时显示的“私钥”再次执行相同操作,确保将其保存为apns-dev-key.p12文件。

  3. 现在需要通过终端执行此命令将这些文件转换为PEM格式:

  4.   

    openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in   apns-dev-cert.p12 openssl pkcs12 -nocerts -out apns-dev-key.pem -in   APNS-DEV-ke​​y.p12

    如果您想删除密码,请在导出/转换或执行时不设置密码:

      

    openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

    最后,您需要将密钥和证书文件合并到我们将在连接到APNS时使用的apns-dev.pem文件中:

      

    cat apns-dev-cert.pem apns-dev-key-noenc.pem> APNS-dev.pem

    希望有所帮助。

答案 2 :(得分:0)

Step1 :

enter image description here

转到Apple开发帐户,然后在证书中按加号按钮,然后按照步骤进行操作。

在生产下,选择

  

“ Apple Push Notification服务SSL(沙盒和生产)”

复选框,然后单击继续。

enter image description here

上传CSR证书并继续...

enter image description here 启动钥匙串访问。

在“类别”部分中,选择“我的证书”。

找到要导出的证书并公开其内容。

您将同时看到证书和私钥。

同时选择证书和密钥,然后选择“文件”>“导出项目”。

从“文件格式”弹出菜单中,选择服务器可接受的文件格式。

在“另存为”字段中输入文件名,然后单击“保存”。

证书和密钥以个人信息交换格式(扩展名为.p12的文件)保存到您指定为文本文件的位置。

遵循Link