3

我在开发人员模式下成功地将 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 模式。那是问题吗?我们的应用程序仍在审核中。

谢谢你的帮助。

4

1 回答 1

0
  • 任何内部分发配置文件都会给出相同的 tokenID,但是这个 tokenID 在不同的设备上会有所不同。
  • 确保在创建 aps_certificate 后生成分发配置文件。配置文件的高更改可能会错过分发证书中的 aps-environment 密钥。
  • 其他唯一的问题可能仅与 ProductionURL 相关。
  • 我还注意到推送通知接收有时会延迟,主要是在与生产 URL 一起使用时。
于 2013-08-25T05:02:25.843 回答