開発者モードのアプリでAPNを正常に使用していますが、アドホック配布モードで動作させることができません。
私はチュートリアルhttp://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12に忠実に従い、SOで見つけたこの問題に関する他のすべての投稿を読みました。および他の場所。
開発者モードでは、cerファイルとp12 pemファイルを作成し、それらを結合します。試してみると、openssl s_client -connect gatey.push.apple.com:2195 -cert aps_production.cer.pem -key MyPrivateKey.p12.pem、次のようになります。
depth=1 /C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
verify error:num=20:unable to get local issuer certificate
verify return:0
-----BEGIN CERTIFICATE-----
(certificate deleted)
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Cupertino/O=Apple Inc./OU=iTMS Engineering/CN=gateway.push.apple.com
issuer=/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
---
No client certificate CA names sent
---
SSL handshake has read 2723 bytes and written 2140 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID:
Session-ID-ctx:
Master-Key: (deleted)
Key-Arg : None
Start Time: 1348332242
Timeout : 300 (sec)
Verify return code: 0 (ok)
「verifyerror:num = 20:unable to get localissuercertificate」の意味や重要性がわかりません。開発者のcerとキーでgateway.sandbox.push.apple.com:2195を使用すると、まったく同じことがわかりますが、正常に機能します。
次に、電話のアプリの開発者バージョンでsimplepush.phpを使用します。通知は完全に機能します。アドホック配布で同じものを使用し、電話でアドホック配布バージョンのアプリを使用すると、simplepush.phpが「APNSに配信されたメッセージ」を返しても何も表示されません。
フィードバックサービスに問い合わせましたが、エラーは報告されていません。
他の人は、アプリがアップルによって承認されていない場合、APNSはアドホックモードでは機能しないことを示唆しています。それが問題ですか?私たちのアプリはまだ審査中です。
ご協力いただきありがとうございます。