iPhone推送通知在沙箱中工作,但不在生产模式下工作

Swi*_*ude 6 iphone production-environment apple-push-notifications

正如标题所说,我有一个内置APNS的应用程序.它在Sandbox模式下完美运行.但在生产模式下,它失败了.

似乎我在服务器上有正确的证书,因为我没有收到APNS服务的错误.一切似乎都很好.我正在使用Aldo Armiento的ApnsPHP.它具有内置功能,可以从APNS-Server中吐出结果.当我尝试将Sandbox与商店中的应用程序一起使用时,我得到 - 正如预期的那样 - 一个无效的令牌错误(因为来自沙箱和生产的令牌不同).当我使用生产证书与商店中的应用程序时,我没有收到错误.没什么,nada,zilch - 似乎它发出了通知.唉,它没有到达我的手机上.

显然,证书必须没问题.它连接到服务器,它发送通知,所有传递没有错误(我确实首先有错误的证书,所以我知道如果他们不正确会发生什么:)

任何想法如何找出bug隐藏的位置?

[编辑]这是我从APNS服务中得到的回复:

Tue, 03 Jan 2012 03:13:55 +0100 ApnsPHP[13049]: INFO: Trying ssl://gateway.push.apple.com:2195...
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: INFO: Connected to ssl://gateway.push.apple.com:2195.
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: INFO: Sending messages queue, run #1: 1 message(s) left in queue.
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: STATUS: Sending message ID 1 [custom identifier: Message-Badge-000] (1/3): 107 bytes.
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: INFO: Disconnected.
Run Code Online (Sandbox Code Playgroud)

San*_*ama 11

以下是您可以在最后检查的三种情况: -

  1. 确保您在服务器端使用了正确的生产证书.因为我们需要为生产和沙箱创建两个不同的证书.确保在服务器上使用正确的证书.

  2. 第二,您可以检查您是否在服务器端使用了正确的网关和端口号.由于生产和沙箱的网关是不同的.用于生产的网关是: - gateway.push.apple.com.并且您在服务器上使用正确的密码作为您在服务器上使用的证书.

  3. 第三,您可以检查设备上的通知是否已启用.您还需要在iPhone上启用它.确保您的设备上有.

请让我知道这对你有没有用.


cha*_*yWu 7

对我来说,我奋斗了好几天.使用正确的生产证书和密钥,并正确的网关将消息发送到我正在开发的iPhone,它成功发送到沙箱模式,但生产模式失败.这是因为还有两种设备令牌,测试iPhone设备令牌是沙箱令牌,不能在生产模式下使用.最好使用其他设备的令牌来测试生产APN.

详细的说明是这里

最常见的问题是无效的设备令牌.如果令牌来自沙箱环境,例如当您在内部测试开发构建时,则无法将其发送到生产推送服务.每个推送环境都会为同一设备或计算机发出不同的令牌.如果您确实将设备令牌发送到错误的环境,则推送服务会将其视为无效令牌并丢弃该通知.