iOS - 如何检查wheather pem文件是否有效?

问题描述:

我创建了开发和生产pem文件。我按照这个步骤:iOS - 如何检查wheather pem文件是否有效?

1)developer.apple.com:AppIDs部分检查包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文件并从控制台发送推送通知。我不会推动我的设备。

+0

如果想要测试,没有任何方法测试pem文件。只有在获取响应和检查错误时才发送pushnotifiction的方法尝试解决 –

+0

您是否正确执行了所有步骤然后没有任何错误发生从那个答案http://*.com/questions/21250510/generate-pem-file-used-to-setup-a pple-push-notification –

+0

用于开发推送令牌不同于Production.Are使用相同的标记? – Mukesh

有很多原因可能导致您无法通过设备上的生产.pem证书获取推送通知。除了确保你所产生的不同的生产许可证正确,这里是检查几件事情:

  1. 你有你的测试设备 上运行的Ad-hoc或分发构建测试生产许可证
  2. 您已经成功地在 收集的生产推送令牌所述设备(将 总是从开发推送令牌不同)
  3. 您可以连接到苹果推送通知的生产服务器 (gateway.push.apple.com,端口2195)与新证书(即/ 你能打开一个套接字连接,它不会立即关闭 )
  4. 已检查您的证书没有过期

做不到这一切,你真的需要检查什么唠唠通过该证书发送内容时的网络级别。如果它无效,它根本不会连接到Apple。如果它是有效的,但您发送的推送令牌无法被Apple识别,则会返回一个错误代码(如果您使用的是二进制接口)或连接将被切断。您可能还想查看APNS Feedback API以获得有关错误的更多信息。

你可能想看看this答案和this其他答案获取更多提示。

+0

我已经撤消生产pem文件并创建一个新文件。它解决了我的问题。 –

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

的OpenSSL的s_client.First -connect gateway.sandbox.push.apple.com:2195 -cert pnpush:

您可以使用下面的命令,如果成功的话,直到你按下输入应该挂测试你的PEM密钥。 pem-key pnpush。pem

以上测试沙盒模式下的PEM密钥。对于生产模式,使用下面的命令:

的OpenSSL的s_client.First -connect gateway.push.apple.com:2195 -cert pnpush.pem -key pnpush.pem在https://www.pubnub.com/knowledge-base/discussion/234/how-do-i-test-my-pem-key

由于克雷格

+0

这应该是答案。 – Bryan

+0

@ kirti-parghi不在乎接受答案:) – Nowdeen