我在开发人员模式下成功地将 APN 与我的应用程序一起使用,但我无法让它在临时分发模式下工作。
我忠实地遵循了教程http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12并且我已经阅读了关于这个问题的所有其他帖子,我可以在 SO 上找到和其他地方。
在开发人员模式下,我创建 cer 和 p12 pem 文件并将它们组合起来:当我尝试:openssl s_client -connect gateway.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)
我不知道“验证错误:num=20:无法获得本地颁发者证书”是什么意思,或者它是否重要。当我将 gateway.sandbox.push.apple.com:2195 与我的开发人员 cer 和密钥一起使用时,我得到了同样的结果,但它工作正常。
然后当我在手机上使用 simplepush.php 和开发人员版本的应用程序时。通知工作完美。当我在手机上使用即席分发和即席分发版本的应用程序时,尽管 simplepush.php 返回:“已向 APNS 传递消息”,但我什么也没得到
我查询了反馈服务,没有报错。
其他人建议,如果应用程序未经苹果批准,APNS 不适用于 adhoc 模式。那是问题吗?我们的应用程序仍在审核中。
谢谢你的帮助。