我使用Appery平台开发混合应用。对于已发布到Apple Store的其中一个应用,我想启用推送通知。设备正在使用DeviceID和Token正确注册。但是,当我尝试发送推送通知时,它们不会通过,而平台只会返回此错误,这对我来说并不太多:
描述:尝试与Apple服务器通信时发生不可恢复的错误:null 设备数量:100
我尝试了所有可能的尝试来徒劳地解决这个问题。 大多数教程和问题都是关于创建启用推送通知的新应用程序,而不是启用已发布应用程序的推送通知。因此,它产生了相当多的混乱,因为我应该从哪里开始,我应该更新什么以及我应该留下什么(例如,我无法从头开始,我的应用程序已经使用应用程序ID注册)
这里我描述了我为我的应用启用PN的步骤
App IDs
菜单中选择了Identifiers
,然后我选择了我的目标应用ID,点击了Edit
,勾选了Push Notification
选项,它变成了{{ 1}}用黄色灯泡。 configurable
下的Create Certificate
。 Production SSL Certificate
文件aps_production.cer
菜单下,我选择了provisioning profiles
并创建了新的配置文件:分发 - > App Store选项 - >继续 - >我的应用ID继续 - >我的应用程序第一次发布时使用的证书(此处的证书不是我刚才生成的SSL推送通知证书。它是我第一次发布应用程序时创建的证书。)distribution
下,我选择了我创建应用的证书(这是唯一显示的选项),然后我双击了我的配置文件,显示code Signing
个选项(我对此步骤持怀疑态度)。我成功构建并验证了项目,将其提交到App store,它出现在预发布部分,并且收到了Test Flight邀请。 现在我的问题是,我的步骤导致错误是什么?缺少什么或没有正确完成?
这些是我试图解决问题的其他参考资料
答案 0 :(得分:0)
我无法清楚地记得,但你需要转换p12(如上面的链接)并拥有转换后的文件并将在服务器上运行。像这样的东西。
答案 1 :(得分:0)
我不确定,但我认为问题可能在第4步& 5。 试试我的步骤:
展开此选项,然后右键单击“Apple Development Push Services”>导出“Apple Development Push Services ID123”。将此保存为apns-dev-cert.p12文件,您可以访问它。
对扩展“Apple Development Push Services”时显示的“私钥”再次执行相同操作,确保将其保存为apns-dev-key.p12文件。
现在需要通过终端执行此命令将这些文件转换为PEM格式:
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-key.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 :
转到Apple开发帐户,然后在证书中按加号按钮,然后按照步骤进行操作。
在生产下,选择
“ Apple Push Notification服务SSL(沙盒和生产)”
复选框,然后单击继续。
上传CSR证书并继续...
在“类别”部分中,选择“我的证书”。
找到要导出的证书并公开其内容。
您将同时看到证书和私钥。
同时选择证书和密钥,然后选择“文件”>“导出项目”。
从“文件格式”弹出菜单中,选择服务器可接受的文件格式。
在“另存为”字段中输入文件名,然后单击“保存”。
证书和密钥以个人信息交换格式(扩展名为.p12的文件)保存到您指定为文本文件的位置。
遵循Link