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

时间:2015-05-14 08:25:24

标签: ios apple-push-notifications

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

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

2)打开钥匙链

3)右键单击我们的证书并导出证书。

4)你将从这里得到.p12文件:喜欢: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文件并从控制台发送推送通知。我不会推动我的设备。

3 个答案:

答案 0 :(得分:28)

这是一个旧帖子,但我正在寻找相同的答案,并希望这个解决方案可以帮助某人......为我工作。

您可以使用以下命令测试您的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

答案 1 :(得分:0)

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

  1. 您的测试设备上运行了Ad-Hoc或Distribution版本 在测试生产证书时
  2. 你成功了 收集了所述设备的生产推送令牌(将会 总是与开发推送令牌不同)
  3. 您可以连接Apple推送通知PRODUCTION服务器 (gateway.push.apple.com,端口2195)带有新证书(即/ 您可以打开套接字连接但它不会关闭 立即)
  4. 您已检查过您的证书未过期
  5. 如果做不到这一点,当您通过该证书发送内容时,您确实需要检查网络级别的内容。如果它无效,它将无法连接到Apple。如果它有效但Apple无法识别您发送的推送令牌,则会返回错误代码(如果您使用的是二进制接口),或者连接将被切断。您可能还需要查看APNS Feedback API以更深入地了解出现的问题。

    您可能需要查看this回答和this其他答案以获取更多提示。

答案 2 :(得分:-1)

使用此工具检查两个PEM文件(开发和分发)非常容易:

Supports Both APNS & GCM Click to check PEM File is valid or not