2010-09-29 104 views
14

我正在为我的一个应用程序开发推送通知,我用PHP编写了提供程序,它工作正常。我以前使用我的开发版本和来自Apple的沙盒服务器来测试推送通知,并且一切正常,现在我试图让它与AdHoc版本一起工作,但是我从来没有在手机上收到任何消息。下面是我做的:AdHoc构建不接收推送通知

  • 启用的应用生产推送通知,创建证书,下载,创建PEM按照指示here并把它上传到我的服务器。配置我的PHP脚本使用gateway.push.apple.com和端口2195进行连接并测试它,到服务器的连接按预期工作。
  • 有效载荷的布局相同与开发,并写入流工作
  • 激活生产APN我重新创建我的AdHoc供应曲线,并在权利APS-环境,构建结束后证实,被设置为后“生产“(它是)
  • 通过AdHoc在未运行应用程序的设备上安装应用程序之前,我被问到是否允许PN,单击是,我的服务器收到令牌,就像它应该。
  • 试图通过生产环境发送消息(应发送到3个设备)。连接到Apple或发送数据时没有错误,但我没有收到任何设备上的推送通知。

我真的没有想法什么可能是错的,有没有人有想法?非常感谢!

回答

30

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

+2

这条线的含义是什么:始终保持你的开发和生产标记很好地分离。令牌来自设备,所以开发和生产有什么区别? – Vijay 2012-03-22 10:13:09

+1

男人,不知道我花了多长时间才弄清楚这一点。我已经删除了数据库,开始使用AdHoc进行测试,结果很好。感谢您的发布。 – Colnaghi 2012-05-16 21:09:19

+2

我变得疯了...所有的证书和移动配置等都大大设置了(两次...),但仍然没有运气。天哪,这怎么可能不是苹果推送通知文件...(这说,很难找到)谢谢一堆。 – nembleton 2012-10-04 13:00:13

0

我正在努力解决同样的问题。我相信问题在于,在adhoc构建中,苹果只会从生产apns服务器向他们发送通知,试试这个。

+0

通知可以提供例如如何做到这一点dev的令牌有什么不同? – Charx 2012-12-06 04:25:57

0

对于分发和发布构建始终使用生产证书。

1

生产和开发的推送证书是不同的。并且为同一设备制作更加困难的生产设备令牌和沙箱是不同的。交叉检查这些是否正确,我确定你一定在这方面动摇了。要在生产模式下获取设备标记,请在AppDelegate didreceivenotifications事件中编写一个alertview。

一旦你得到这个道理,你就知道它是从我们所产生这就是为什么你不能发送的PROD