Apple PushKit didUpdatePushCredentials n'est jamais appelé sur iOS 9+

Je développe une application VoIP pour iPhone. Pour recevoir des appels, Apple a développé PushKit afin que les développeurs puissent envoyer des notifications VoIP en utilisant APNS.

Tout fonctionnait correctement sur iOS 8. Lorsque je suis mis à jour vers iOS 9, PKRegistryDelegate ne triggers pas la méthode didUpdatePushCredentials après l'logging.

Des idées / suggestions?

L'activation de l'indicateur "Notification push" de Projet-> Capacités a résolu mon problème. C'est étrange parce que ça fonctionnait sans ça plus tôt. Cette réponse peut-être en retard, mais j'espère que cela aidera quelqu'un. J'ai eu du mal à comprendre cela.

Si vous utilisez un xcode plus récent (je suis sur xcode 9) alors VOIP n'est pas dans la section Background de l'onglet Capabilities. Cela empêchera didUpdatePushCredentials d'être appelé!

L'astuce est que vous devez aller dans votre plist, et dans Required Background Modes vous devez append App provides Voice over IP services .

entrez la description de l'image ici

Pour moi, c'était la question des certificates. Le certificate de développement a été utilisé par mon application, n'a pas configuré pousser dans ces certificates. J'espère que cela peut aider n'importe qui ..

J'ai donc eu ce problème aussi, et j'ai passé deux jours à me tirer les cheveux. J'ai fait tout cela:

  • nettoyer le projet activer / désactiver les modes d'arrière-plan
  • activer / désactiver les notifications push
  • redémarrer le code x
  • redémarrer l'ordinateur
  • application supprimée de l'appareil
  • nettoyé / Bibliothèque / Développeur / DerivedData
  • alors je révoquerais tous les certificates, enlevé tous les profils de provisioning. Les a enlevés même de mon keychain. Tout a été créé de nouveau et installé à nouveau dans keychain et xcode.

Tout cela n'a pas aidé.

Puis, pour une raison quelconque, je me suis dit, et si je tournais mon téléphone, que je testais, éteint et rallumé .

et puis ça a marché …