生产推送通知在以前工作后停止工作

时间:2014-09-11 14:21:12

标签: ios apple-push-notifications

我正在提供这个问题和答案,因为我没有看到我遇到的相当常见的'APNS没有工作问题'的问题,也许我的经验可以帮助其他人。

我在商店中的一个应用程序使用推送通知。该应用程序的第1版工作得很好。没问题。

我创建了1.1版,在沙盒APNS上测试了它(工作正常)并提交了它。在1.1批准后的某个时候,我注意到推送通知无效。我的设备没有收到任何推送通知,也没有任何其他用户。这自然让我相信,当我创建v 1.1时,我已经用证书或类似的东西搞砸了。我检查了所有正常的东西 - 沙箱与生产,证书,配置文件等。没有骰子。

- 我的服务器设置

我自己正在与APNS服务器进行交互,每当我向Apple发送APNS消息时,我都得到了积极响应。我的服务器代码打开与APNS网关的连接,为每个需要的设备发送APNS消息,然后关闭连接。

(下一位是问题的关键)

在我的数据库中的用户记录中,我会跟踪用户是否安装了应用的开发版本或应用的生产版本。我将此作为用户记录中的标志。我这样做是为了方便使用。

为简单起见,我有一个脚本处理开发用户并将他们的APNS消息发送到沙盒服务器,并将生产用户的APNS消息发送到生产APNS网关的单独代码。

所有这些都很好。我将为你节省所有的重新认证步骤以及我所做的其他悲伤。

据我所知,一切正常,一切都设置正确。所以我遵循兰德女士的建议:“矛盾不存在。每当您认为自己面临矛盾时,请检查您的场所。你会发现其中一个是错的。“

1 个答案:

答案 0 :(得分:1)

经过几个小时试图弄清楚发生了什么后,我终于确定了问题。

  1. 我已经将开发用户(我妻子的iPhone)变成了生产用户,因为我认为她已经下载了应用程序的生产版本
  2. 对于此用户,我的服务器使用从开发应用生成的deviceID并将其发送到生产APNS服务器
  3. 每当我将该设备ID作为APNS消息之一发送到生产服务器时,即使我得到服务器的肯定响应,也不会向任何其他设备发送任何APNS消息。
  4. 一旦我将用户记录重新转换为开发设备,一切都开始重新开始了。

    我多次验证这是问题所在。

    因此,似乎使用一个用于沙盒APNS交互并将其发送到生产APNS的deviceID确实搞砸了。

    希望这有助于将来的某些人。

相关问题