4

我想知道当您从苹果的推送反馈服务中获取令牌列表时,这些令牌是否仅针对发出呼叫的应用程序(使用该应用程序的 pem 证书),或者苹果是否会将您所有应用程序的令牌发回同一个账号下有app id吗?

我问的原因是我有一个脚本可以检查反馈服务,以便它可以在发送推送之前删除令牌。我复制了脚本并将其设置在我的新应用程序的新子目录中,并更改了所有适当的数据库信息并为这个新应用程序创建了新的 pem 文件。

由于这是一个新应用程序,数据库中只有一个令牌,我还没有发送任何推送,但是当我运行脚本时,反馈服务报告了 1200 个需要删除的令牌。由于我没有预料到这一点,我只检查了从数据库中为这个应用程序删除这些令牌,而不是从其他应用程序中删除。

我很困惑,因为 Apple 开发人员页面上写着“为此,Apple 推送通知服务包括一项反馈服务,该服务 APNs 不断更新每个应用程序的设备列表,其中列出了失败的交付尝试”,这让我相信我应该仅在每个应用程序的基础上获取令牌,而不是所有应用程序。

任何人都可以确认或否认反馈服务如何与多个应用程序一起工作,这样我就可以找出我的问题出在哪里(如果我有一个)?

谢谢

4

2 回答 2

2

我找到了一些关于此的信息:

APNS 反馈服务器仅返回自您上次反馈请求以来已“过期”的设备令牌。

来源

这意味着如果你发送到你的几个应用程序,然后在 X 次推送到苹果之后,调用 feedback() 然后 feedback() 将有来自你所有应用程序的非活动令牌。

我目前的解决方案是在每次推送到苹果后调用反馈。现在已经足够好了 ©

于 2012-04-12T07:01:13.660 回答
2

好吧,在向 Apple 发送电子邮件并等待大约 2 周后,我终于得到了他们的以下回复:

连接到反馈服务使用您用于连接到 APNs 网关的相同 TLS/SSL 身份(证书和私钥)。APNs 通过证书的 UserID 属性标识您希望与哪个应用程序通信。

因此,正如您必须为每个应用程序建立与 APN 的单独连接以发送通知一样,您必须对反馈服务执行相同的操作。

因此,您为每个应用程序与反馈服务建立了单独的连接。

于 2012-05-07T23:27:49.613 回答