我正在提供这个问题和答案,因为我没有看到我遇到的相当常见的'APNS没有工作问题'的问题,也许我的经验可以帮助其他人。
我在商店中的一个应用程序使用推送通知。该应用程序的第1版工作得很好。没问题。
我创建了1.1版,在沙盒APNS上测试了它(工作正常)并提交了它。在1.1批准后的某个时候,我注意到推送通知无效。我的设备没有收到任何推送通知,也没有任何其他用户。这自然让我相信,当我创建v 1.1时,我已经用证书或类似的东西搞砸了。我检查了所有正常的东西 - 沙箱与生产,证书,配置文件等。没有骰子。
- 我的服务器设置
我自己正在与APNS服务器进行交互,每当我向Apple发送APNS消息时,我都得到了积极响应。我的服务器代码打开与APNS网关的连接,为每个需要的设备发送APNS消息,然后关闭连接。
(下一位是问题的关键)
在我的数据库中的用户记录中,我会跟踪用户是否安装了应用的开发版本或应用的生产版本。我将此作为用户记录中的标志。我这样做是为了方便使用。
为简单起见,我有一个脚本处理开发用户并将他们的APNS消息发送到沙盒服务器,并将生产用户的APNS消息发送到生产APNS网关的单独代码。
所有这些都很好。我将为你节省所有的重新认证步骤以及我所做的其他悲伤。
据我所知,一切正常,一切都设置正确。所以我遵循兰德女士的建议:“矛盾不存在。每当您认为自己面临矛盾时,请检查您的场所。你会发现其中一个是错的。“
答案 0 :(得分:1)
经过几个小时试图弄清楚发生了什么后,我终于确定了问题。
一旦我将用户记录重新转换为开发设备,一切都开始重新开始了。
我多次验证这是问题所在。
因此,似乎使用一个用于沙盒APNS交互并将其发送到生产APNS的deviceID确实搞砸了。
希望这有助于将来的某些人。