AdHoc构建不会收到推送通知

时间:2010-09-29 10:00:26

标签: iphone push-notification apple-push-notifications

我正在为我的应用程序开发推送通知,我用PHP编写提供程序,它工作正常。我以前使用我的开发版和Apple的沙盒服务器测试推送通知,一切正常,现在我试图让它与AdHoc版本一起使用,但我从未在手机上收到任何消息。这是我做的:

  • 为应用启用生产推送通知,创建证书,下载证书,按照说明here创建PEM并将其上传到我的服务器。配置我的PHP脚本使用gateway.push.apple.com和端口2195进行连接并测试它,与服务器的连接按预期工作。
  • 有效负载的布局与开发和写入流工作相同
  • 激活生产APN后,我重新创建了我的AdHoc配置文件,并在构建之后验证了权限aps-environment设置为“production”(就是这样)
  • 在之前未运行应用程序的设备上通过AdHoc安装了应用程序,我被问到是否允许使用PN,然后单击是,我的服务器就会收到令牌。
  • 尝试通过生产环境发送消息(应该发送到3台设备)。连接到Apple或发送数据时没有错误,但我没有在任何设备上收到推送通知。

我真的没有想法可能有什么不对,有人有想法吗?非常感谢!

4 个答案:

答案 0 :(得分:30)

我终于弄明白了,问题是如果你打开一个到APNS的连接并发送多个推送通知,你提交的其中一个令牌不是对这个证书有效的令牌(例如你发送过来的)在与生产证书连接时属于开发实例的令牌)APNS取消您在此批次中发送的所有PN的交付。至少这是我目前所经历的,所以请确保你始终保持你的开发和生产代币很好地分开:)

答案 1 :(得分:1)

用于生产和开发的推送证书是不同的。并且为了生产和沙箱制造更难的设备令牌对于相同的设备是不同的。交叉检查这些是否正确并且我确定你必须在这方面动摇。要在生产模式下获取设备令牌,请在AppDelegate didreceivenotifications事件中编写警报视图。

获得此令牌后,您将知道它与我们正在生成的dev令牌不同,这就是您无法在PROD上发送通知的原因

答案 2 :(得分:0)

我正在努力解决同样的问题。我相信问题是,对于adhoc版本,apple只会从生产apns服务器向他们发送通知,试试。

答案 3 :(得分:0)

对于分发和发布版本,请始终使用生产证书。