iOS - 如何检查天气文件是否有效?

Kir*_*ghi 17 apple-push-notifications ios

我已经创建了开发和生产pem文件.我已按照以下步骤操作:

1)developer.apple.com:AppIDs部分检查Bundle id支持开发SSL证书,如果没有则创建该证书(支持APNS)

2)打开钥匙链

3)右键单击我们的证书和出口证书.

4)你将从这里得到.p12文件:like:hope_APNS.p12

5)打开控制台(终端)并运行以下命令(在此处使用创建的.p12文件作为输入)openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts

6)你将获得相同的.pem文件.(如hope_APNS.pem)

开发pem文件工作正常.但是有一些生产pem文件.当我设置生产pem文件并从控制台发送推送通知.我不会推动我的设备.

Now*_*een 30

这是一个老线程,但我正在寻找相同的答案,并希望这个解决方案帮助某人......为我工作.

您可以使用以下命令测试您的PEM密钥,如果成功,则应该挂起,直到您按Enter键:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert pnpush.pem -key pnpush.pem

以上测试沙盘模式下的PEM密钥.对于生产模式,请使用以下命令:

openssl s_client -connect gateway.push.apple.com:2195 -cert pnpush.pem -key pnpush.pem

感谢Craig,网址https://www.pubnub.com/knowledge-base/discussion/234/how-do-i-test-my-pem-key


Nic*_*ick 1

您无法通过设备上的生产 .pem 证书获取推送通知的原因有很多。除了确保正确生成不同的生产证书之外,还需要检查以下几项内容:

  1. 测试生产证书时,您的测试设备上正在运行 Ad-Hoc 或 Distribution 版本
  2. 您已成功收集该设备的生产推送令牌(该令牌始终与开发推送令牌不同)
  3. 您可以使用新证书连接到 Apple 推送通知生产服务器(gateway.push.apple.com,端口 2195)(即/您可以打开套接字连接,并且不会立即关闭)
  4. 您已检查您的证书未过期

如果做不到这一点,当您通过该证书发送内容时,您确实需要检查网络级别发生的情况。如果无效,则根本无法连接到 Apple。如果它有效,但 Apple 无法识别您发送的推送令牌,则会返回错误代码(如果您使用二进制接口)或连接将被切断。您可能还想查看APNS Feedback API,以更深入地了解出现的问题。

您可能想查看这个答案和另一个答案以获取更多提示。