如何testingApple推送通知反馈服务?

我做的一个testing是:

  • 我做了一个示例应用程序,我启用了推送通知并实现了处理它们的机制。

  • 我正在testing发送无声的推送通知到我的应用程序curl ,这工作得很好。 我正在testing:

    curl -v -d'{“aps”:{“content-available”:1}}'–cert“/Users/me/Desktop/mycert.pem”:“”-H“apns-topic:com.domain .name“–http2 https://api.development.push.apple.com/3/device/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 作为苹果的回答,我总是看到以下内容:

    <HTTP / 2.0 200

    <apns-id:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX

    根据官方文档的Table 6-4 ,这是正确的,正如所料: https : //developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html

  • 现在我从我的设备中删除应用程序,然后重试相同的请求,希望能够开始获取状态码410和信息: The device token is no longer active for the topic 。 如何,这不会发生,我总是得到200状态代码就像一切正常,并推动令牌仍然可用。

删除后的1 – 1.5小时,我仍然得到200作为答案。

你也许知道苹果刷新令牌清单的频率有多高?我什么时候能期望最终开始获得410 ? 而且 – 在testing生产环境之外的应用程序时,可以testing410状态(通常是Instant Feedback )吗?

预先感谢任何一种答案。

干杯

好的,从我发现的情况来看,似乎苹果公司的Instant Feedback服务工作得很好,能够很快检测到卸载。 如何使用沙箱服务正确testing这些东西有一个小窍门。

如果您在设备上本地testing应用程序,并且您的应用程序是该configuration文件(供应商)安装在手机上的唯一应用程序,则会遇到我在我的问题中遇到的问题。 出于某种原因,即使您卸载应用程序(这是从您的供应configuration文件安装的电话上的唯一一个),Apple始终以200响应。

需要做的事情如下:在你正在testing的应用程序安装完成之后,用另一个软件包ID创build一个新的虚拟应用程序,但是也来自你的供应configuration文件,启用推送通知,并将其安装到你的设备上。 所以现在,你有两个应用程序,你正在开发和testing的Instant Feedback服务,另一个有一个“僵尸”的应用程序,只是坐在那里,什么都不做。

之后,卸载您的testing应用程序,尝试发送静默推送通知,苹果将按照预期回复status code 410

虚拟的方式,但由于某种原因,这就是testing时应该如何。 生产中的行为应该如预期的那样,并且不需要在iOS设备上安装来自相同供应商的虚拟(或任何其他)应用程序。