2015-05-14 70 views
6

我創建了開發和生產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://stackoverflow.com/questions/21250510/generate-pem-file-used-to-setup-a pple-push-notification –

+0

用於開發推送令牌不同於Production.Are使用相同的標記? – Mukesh

回答

0

有很多原因可能導致您無法通過設備上的生產.pem證書獲取推送通知。除了確保你所產生的不同的生產許可證正確,這裏是檢查幾件事情:

  1. 你有你的測試設備 上運行的Ad-hoc或分發構建測試生產許可證
  2. 您已經成功地在 收集的生產推送令牌所述設備(將 總是從開發推送令牌不同)
  3. 您可以連接到蘋果推送通知的生產服務器 (gateway.push.apple.com,端口2195)與新證書(即/ 你能打開一個套接字連接,它不會立即關閉 )
  4. 已檢查您的證書沒有過期

做不到這一切,你真的需要檢查什麼嘮嘮通過該證書發送內容時的網絡級別。如果它無效,它根本不會連接到Apple。如果它是有效的,但您發送的推送令牌無法被Apple識別,則會返回一個錯誤代碼(如果您使用的是二進制接口)或連接將被切斷。您可能還想查看APNS Feedback API以獲得有關錯誤的更多信息。

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

+0

我已經撤消生產pem文件並創建一個新文件。它解決了我的問題。 –

12

這是一個古老的線程,但我正在尋找相同的答案,並希望此解決方案可以幫助某人......爲我工作。

的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