Ich hatte das gleiche Problem: Anruf registerForRemoteNotificationTypes:
weder application:didRegisterForRemoteNotificationsWithDeviceToken:
noch aufgerufenapplication:didFailToRegisterForRemoteNotificationsWithError:
Ich habe dieses Problem schließlich mithilfe des technischen Hinweises TN2265 von Apple behoben .
Das habe ich getan:
Zunächst habe ich überprüft, ob ich mich tatsächlich korrekt für Push-Benachrichtigungen registriert habe , einschließlich der Überprüfung meines Bereitstellungsprofils für den Schlüssel "aps-environment" und der Codesignierung der .app-Datei selbst. Ich hatte alles richtig eingerichtet.
Ich musste dann Push-Benachrichtigungsstatusmeldungen in der Konsole debuggen (Sie müssen das Bereitstellungsprofil PersistentConnectionLogging.mobileconfig auf Ihrem Gerät installieren und neu starten . Siehe TN2265 unter "Push-Statusmeldungen beobachten"). Ich habe festgestellt, dass der apns-Prozess einen Timer startet und ein Mindestfeuerdatum berechnet, was mich vermuten ließ, dass die Bestätigungsnachricht für die Push-Benachrichtigung, die normalerweise an dieser Stelle angezeigt wird, von APNS unterdrückt wird, wie in TN2265 angegeben:
Zurücksetzen des Push-Benachrichtigungs-Berechtigungsalarms unter iOS
Wenn sich eine Push-fähige App zum ersten Mal für Push-Benachrichtigungen registriert, fragt iOS den Benutzer, ob er Benachrichtigungen für diese App erhalten möchte. Sobald der Benutzer auf diese Warnung reagiert hat, wird sie erst wieder angezeigt, wenn das Gerät wiederhergestellt oder die App mindestens einen Tag lang deinstalliert wurde.
Wenn Sie eine erstmalige Ausführung Ihrer App simulieren möchten, können Sie die App einen Tag lang deinstallieren lassen. Letzteres können Sie erreichen, ohne einen Tag zu warten, indem Sie die Systemuhr einen Tag oder länger vorwärts stellen, das Gerät vollständig ausschalten und dann wieder einschalten.
Also habe ich die App vom Gerät entfernt, dann das Datum des iPhones in den Einstellungen manuell geändert, das Gerät neu gestartet und die App neu installiert.
Beim nächsten Aufruf meines Codes registerForRemoteNotificationTypes
wurden erwartungsgemäß Rückrufe empfangen.
Dies löste das Problem für mich. Ich hoffe es hilft.