今天早上,我试图将一个针对iOS应用程序的一些错误修复程序的新版本上传到AppStore,归档二进制文件成功,但是我无法将其上传到itunesConnect进行发布。该错误与某些发行证书有关,所以我得到了有关该问题的提示。
通过钥匙串访问时,我看到我的iOS分发证书刚刚在早上过期。
我登录了我的开发人员帐户并创建了一个新的分发证书,并将其安装到我的钥匙串中。 但是在获得此新证书后,我的推送通知不再起作用。
我的应用程序没有收到任何类型的推送通知(带有有效负载或简单通知)。我可以在日志中看到通知和数据有效负载。
我读过其他一些文章,说第二种方法已被弃用,不再可靠,但是在证书更新之前,它运行良好。所以我不明白这里发生了什么。 或者在证书更新后我是否缺少其他一些要配置的东西,例如配置配置文件或我的APNs证书(但我最近才切换到APNS身份验证密钥。p8)
我在 didReceive remoteMessage 中记录了通知和有效负载 Appdelegate中的方法。但是 didReceiveRemoteNotification 从未被调用。
除了此分发证书之外,我的开发人员证书也将到期,因此我通过开发人员帐户吊销了该证书,并生成了一个新证书并将其安装在Xcode中。
Xcode版本10.1(10B61)- 斯威夫特4.2- 装有iOS 11.2.6的TestDevice iPhone X
答案 0 :(得分:0)
您需要使用新的分布式证书生成.pem文件,然后使用此pem文件接收推送通知。
创建.pem文件(按照本文中的步骤操作)
https://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/
使用pem文件测试在线推送通知
http://apns-gcm.bryantan.info/
OR
https://www.logisticinfotech.com/send-push-notification-online/
答案 1 :(得分:0)
答案 2 :(得分:0)
好吧,我通过删除钥匙串访问中以及与开发人员帐户的“证书”页面上与我的THIS应用程序相关的证书的任何现有实例,解决了该问题。
从开发人员帐户的“证书”页面上的应用程序ID,通过在线生成一个,下载,安装在钥匙串中,导出.p12证书并上传到Firebase项目设置,为我的应用程序重新配置推送通知SSL证书。对生产SSL证书也重复同样的操作。
我正在使用POSTMAN客户端将数据有效载荷通知发送到我的应用程序,并且该应用程序现在可以正常工作。我现在收到所有通知,没有任何问题。
但是奇怪的是didReceiveRemoteNotification仍然没有被调用。我将对其进行调查,然后看看问题出在哪里,因为在这里,我正在实施将通知保存到本地存储以供以后查看的问题。