如何测试 Apple Push Notifications 反馈服务?
How to test Apple Push Notifications Feedback Service?
我做的测试如下:
我制作了示例应用程序,我在其中启用了推送通知并实施了处理它们的机制。
我正在测试使用 curl
向我的应用程序发送静默推送通知,效果很好。我正在测试:
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/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
作为 Apple 的回答,我总是看到以下内容:
< 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
作为答案。
您是否知道 Apple 刷新推送令牌列表的频率以及我预计何时会最终开始获得 410
?而且 - 在生产环境之外测试应用程序时,410
状态(通常是 Instant Feedback
)是否可以测试?
提前感谢任何类型的回答。
干杯
好的,据我所知,Apple 的 Instant Feedback
服务似乎运行良好,并且能够非常快速地检测到卸载。如何使用沙盒服务正确测试这些东西有一个小技巧。
如果您制作了一个正在您的设备上进行本地测试的应用程序,并且您的应用程序是唯一安装在您的phone上的那个配置文件(供应商) ,将遇到我在问题中遇到的问题。出于某种原因,即使您卸载了该应用程序(这是 phone 中唯一从您的配置文件安装的应用程序),Apple 始终以 200 响应。
需要做的事情如下:安装您正在测试的应用程序后,使用另一个捆绑包 ID 创建一个新的虚拟应用程序,但它也来自您的配置文件,同时在其中启用推送通知,并且在您的设备上安装它。所以现在,你有两个你制作的应用程序 - 一个你正在开发和测试 Instant Feedback
服务,另一个有点 "zombie" 应用程序只是坐在那里什么都不做。
在此之后,卸载您的测试应用程序,尝试发送静默推送通知,Apple 将按预期响应 status code 410
。
虚拟方式,但出于某种原因,这就是测试时应该采用的方式。生产中的行为应该符合预期,w/o 任何需要在 iOS 设备上安装来自同一供应商的虚拟(或任何其他)应用程序。
我做的测试如下:
我制作了示例应用程序,我在其中启用了推送通知并实施了处理它们的机制。
我正在测试使用
curl
向我的应用程序发送静默推送通知,效果很好。我正在测试: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/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
作为 Apple 的回答,我总是看到以下内容:
< 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
作为答案。
您是否知道 Apple 刷新推送令牌列表的频率以及我预计何时会最终开始获得 410
?而且 - 在生产环境之外测试应用程序时,410
状态(通常是 Instant Feedback
)是否可以测试?
提前感谢任何类型的回答。
干杯
好的,据我所知,Apple 的 Instant Feedback
服务似乎运行良好,并且能够非常快速地检测到卸载。如何使用沙盒服务正确测试这些东西有一个小技巧。
如果您制作了一个正在您的设备上进行本地测试的应用程序,并且您的应用程序是唯一安装在您的phone上的那个配置文件(供应商) ,将遇到我在问题中遇到的问题。出于某种原因,即使您卸载了该应用程序(这是 phone 中唯一从您的配置文件安装的应用程序),Apple 始终以 200 响应。
需要做的事情如下:安装您正在测试的应用程序后,使用另一个捆绑包 ID 创建一个新的虚拟应用程序,但它也来自您的配置文件,同时在其中启用推送通知,并且在您的设备上安装它。所以现在,你有两个你制作的应用程序 - 一个你正在开发和测试 Instant Feedback
服务,另一个有点 "zombie" 应用程序只是坐在那里什么都不做。
在此之后,卸载您的测试应用程序,尝试发送静默推送通知,Apple 将按预期响应 status code 410
。
虚拟方式,但出于某种原因,这就是测试时应该采用的方式。生产中的行为应该符合预期,w/o 任何需要在 iOS 设备上安装来自同一供应商的虚拟(或任何其他)应用程序。