如何配置苹果推送通知以进行分发

时间:2012-09-22 17:00:29

标签: ios push-notification ad-hoc-distribution

我在开发者模式下成功使用APN与我的应用程序,但我无法让它在adhoc分发模式下工作。

我忠实地关注了教程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和app的开发者版本。通知工作完美。当我使用相同的adhoc发行版,以及手机上的adhoc发行版app时,尽管simplepush.php返回,但我什么都没得到: “向APNS发送消息”

我查询了反馈服务,并且没有报告错误。

其他人建议如果该应用尚未获得苹果批准,则APNS不适用于adhoc模式。那是问题吗?我们的应用程序仍在审核中。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  • 任何内部分发配置文件都会给出相同的tokenID,但这个tokenID在不同设备上的变化情况如何。
  • 确保在创建aps_certificate后生成分发配置文件。更改配置文件可能会错过分发证书中的aps-environment密钥。
  • 其他唯一问题可能只适用于ProductionURL。
  • 我还注意到推送通知接收有时会延迟,主要是与生产URL一起使用时。