76 votes

Le jeton de périphérique APN est-il unique pour chaque application?

J'ai deux applications sur l'iTunes store à la fois de mettre en œuvre les notifications push. Alors que je testais l'envoi de notifications à la production de ces applications, j'ai remarqué qu'un push prévu pour application de l'Un était intitulé et ouvert d'application B.

Ces deux applications sont installées sur le même téléphone. J'ai regardé dans mon appareil de table et vit que le dispositif de Jetons (et bien sûr, l'ID de l'Appareil) indiquée pour les deux applications ont été à la fois le même.

Comme demandé, je suis à l'aide de deux certificats sur le serveur - un pour chaque application. J'ai supposé que le dispositif de Jeton ou de certificat d'acheminer le message à la bonne application mais clairement il n'est pas.

Je peux voir dans NSLog que les pions d'être envoyé à partir de chaque application sont en effet les mêmes.

Si l'appareil doit Jeton être unique pour chaque application? Si oui, une idée de comment mon test de téléphone pourrait être d'envoyer le même dispositif de jeton pour les deux applications à mon serveur. Gardez à l'esprit que c'est à partir de deux applications sur l'app store.

Merci pour toute aide!

91voto

Mups Points 1041

Deviner. Les jetons de périphérique ne sont PAS uniques au couplage app-téléphone. Ils sont uniques au téléphone seulement. Si vous avez plusieurs applications avec Push sur le même téléphone, elles utiliseront toutes le même Jeton de périphérique. Le certificat que vous utilisez pour envoyer la notification dictera à quelle application il va aller.

53voto

user1641761 Points 109

iOS 7 gérer cela différemment. Il est UNIQUE maintenant.

Voir le point 1 de cet article: https://support.urbanairship.com/customer/portal/articles/1321513-how-ios-7-handles-push-differently

"Avant iOS 7, le dispositif de jeton a été la même dans toutes les installations d'applications sur un périphérique donné. Différentes applications sur votre téléphone, que Tap Tap Revenge ou des etats-unis aujourd'Hui, serait d'utiliser la même adresse, c'est à dire, dispositif de jeton, pour acheminer la notification push pour vous. Les informations d'identification de sécurité que vous avez une paire avec un message s'assurer qu'il fait à la droite de l'app. Sur iOS 7, Apple a franchi une étape supplémentaire et fait en sorte que l'appareil jetons sont différentes dans chaque application installer. Cela permet de mieux protéger la vie privée des utilisateurs en supprimant un autre téléphone-niveau de l'identification."

Voir aussi ios 7 dispositif de jeton est différente pour le même appareil

16voto

cooliPhoneGuy Points 391

Partage de ma compréhension et les réponses un peu de Développeurs Apple:

  • Dispositif De Jeton
    • Dispositif de jeton est l'identifiant unique de l'appareil.
    • APNs génère dispositif de jeton à l'aide de l'unique certificat de périphérique (peut-être l'aide d'un profil de configuration)
    • Dispositif de jeton peut être changé. Donc, assurez-vous d'envoyer la mise à jour du dispositif de jeton à votre serveur à chaque fois.
    • Dispositif de jeton est de MÊME pour toutes les applications sur l'appareil.
    • Il est spécifique à l'appareil et non pas spécifiques à l'application.
    • Dispositif de Jeton peut être différent pour bac à sable et de la production.
      • Basé sur un profil de configuration(bac à sable ou de la production), l'Apn peut générer différentes dispositif de jeton pour le bac à sable et de la production pour le même périphérique.
    • Alors, comment la notification push est différenciée sur l'appareil? Pour l'application qui c'est?
      • Il le fait sur la base de l'identificateur d'application et certificat SSL installé sur le serveur (à l'aide de laquelle la notification est poussé à l'Apn serveur).
  • Références

8voto

Cela dit, n'oubliez pas qu'Apple se réserve le droit de modifier un appareil APNToken comme bon lui semble. Par conséquent, ne l'utilisez pas pour identifier de manière unique un appareil / utilisateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X