Ce que j'ai fait comme test suit:
J'ai fait un exemple d'application où j'ai activé les notifications push et mis en place un mécanisme pour les gérer.
Je testais l'envoi de notifications push silencieuses à mon application avec curl
et cela fonctionne plutôt bien. Je teste cela avec:
curl -v -d '{"aps": {"contenu-disponible": 1}}' –cert "/Users/me/Desktop/mycert.pem": "" -H "apns-sujet: com.domain .name "–http2 https://api.development.push.apple.com/3/device/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
En réponse à Apple, je vois toujours ce qui suit:
<HTTP / 2.0 200
<apns-id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX
Ce qui est bien et comme prévu, selon le Table 6-4
des documents officiels: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html
Maintenant, je supprime l'application de mon appareil et je réessaye la même request un peu en espérant que je vais commencer à get le code d'état 410
et info que The device token is no longer active for the topic
. Cependant, cela n'arrive pas et je reçois toujours 200
codes de statut comme si tout allait bien et que le jeton push est toujours disponible.
1 – 1,5 heures après la suppression, je reçois toujours 200
comme une réponse.
Savez-vous peut-être à quelle fréquence Apple actualise-t-il la list des jetons push et quand puis-je espérer commencer à en recevoir 410
? Et aussi: le statut 410
(et Instant Feedback
en général) est-il testable lors du test de l'application en dehors de l'environnement de production?
Merci d'avance pour tout type de réponse.
À votre santé
D'accord, donc de ce que j'ai découvert, semble que le service de Instant Feedback
d'Apple fonctionne très bien et est capable de détecter la désinstallation assez rapidement. Il y avait une petite astuce dans la façon de tester ces choses correctement avec le service de bac à sable.
Si vous créez une application que vous testez localement sur votre appareil et que votre application est la seule installée sur votre téléphone à partir de ce profil d'approvisionnement (fournisseur) , des problèmes auxquels je devais faire face dans ma question seront rencontrés. Pour une raison quelconque, même si vous désinstallez l'application (qui était la seule sur le téléphone installée à partir de votre profil d'approvisionnement), Apple répond toujours avec 200.
Ce qui doit être fait est le suivant: Après avoir installé votre application que vous testez, créez une nouvelle application fictive avec un autre ID de bundle, mais qui provient également de votre profil d'approvisionnement, activez également les notifications push et installez-la sur votre appareil . Alors maintenant, vous avez deux applications que vous avez faites – une que vous développez et testez le service de Instant Feedback
avec et une autre qui a une sorte d'application "zombie" qui se trouve juste là et ne fait rien.
Après cela, désinstallez votre application de test, essayez d'envoyer une notification push silencieuse et Apple répondra avec le status code 410
comme prévu.
Manière fictive, mais pour une raison quelconque, c'est comme ça que ça devrait être pendant les tests. Le comportement en production devrait être comme prévu et sans avoir besoin d'avoir une application fictive (ou autre) du même fournisseur installée sur le périphérique iOS.