2016-01-18 11 views
10

Ich entwickle eine VoIP-App für iPhone. Um Anrufe zu erhalten, hat Apple PushKit entwickelt, damit Entwickler VoIP-Benachrichtigungen mit APNS senden können.Apple PushKit didUpdatePushCredentials wird niemals auf iOS 9+

Alles funktionierte gut auf iOS 8. Wenn ich auf iOS 9 aktualisiert, feuert die PKRegistryDelegate nicht die Methode didUpdatePushCredentials nach der Registrierung.

Irgendwelche Ideen/Vorschläge?

+0

Haben Sie jemals herausgefunden, was los war? – stevel

+0

Ich habe vergessen, was das Problem war. Ein Problem, dem ich gegenüberstand, war, dass Apple zwei unterschiedliche APNS-Server-Typen für das Verschieben von Token verwendet: einen für Entwicklungsumgebungen und einen für Produktionsumgebungen. Also, wenn Sie von Xcode testen, dann stellen Sie sicher, dass Sie in Ihrem Server verwenden: gateway.sandbox.push.apple.com 2195 und nicht: gateway.push.apple.com 2195 – Pacemaker

+0

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen – Pacemaker

Antwort

13

Das Aktivieren der "Push-Benachrichtigung" -Flag von Project-> Capabilities löste mein Problem. Es ist seltsam, weil es vorher ohne es funktionierte. Diese Antwort vielleicht spät, aber hoffentlich hilft das jemandem. Es fiel mir schwer, das herauszufinden.

+0

Das ist komisch, sogar Apple Docs hat nichts darüber gesagt. – GameBegins

+0

Müssen wir die App für die Push-Benachrichtigung konfigurieren, um auch VoIP Push zu erhalten? Apple Doc erwähnt nichts anderes als VoIP-Zertifikat. @ Vin25, @GameBegins –

+0

Gleiche Arbeit für mich auch, aber jeder weiß warum PushNotificaiton auf ON. während wir es nicht benutzen. –

0

Für mich war es die Frage der Zertifikate. Das Entwicklungszertifikat wurde von meiner App verwendet, nicht konfiguriert, um diese Zertifikate einzubringen. Hoffe, das kann jedem helfen ..

3

Wenn Sie einen neueren xcode (ich bin auf xcode 9) laufen, dann ist VOIP nicht im Bereich Hintergrund auf der Registerkarte Fähigkeiten. Dies verhindert, dass didUpdatePushCredentials aufgerufen wird!

Der Trick ist, Sie müssen in Ihrem Plist gehen, und in Required Background Modes müssen Sie App provides Voice over IP services hinzufügen.

enter image description here

1

So hatte ich dieses Problem auch und verbrachte meine Haare 2 Tage ziehen. Ich habe alle diese:

  • sauber Projekt Ein/Aus Hintergrund-Modi
  • wiederum on/off Push-Benachrichtigungen
  • Neustart x-Code
  • Neustart Computer
  • entfernt App vom Gerät
  • gereinigt/Bibliothek/Entwickler/DerivedData
  • dann würde ich alle Zertifikate widerrufen, alle Bereitstellungsprofile entfernt. Entfernt sie sogar von meinem Schlüsselbund. Alles neu erstellt und erneut in keychain und xcode installiert.

All dies hat nicht geholfen.

Dann, aus irgendeinem Grund dachte ich, was, wenn ich nur mein Telefon, mit dem ich getestet wurde, aus und wieder an.

und dann hat es funktioniert ...