Ich habe meine Pods heute auf den neuen Firebase 4.0 aktualisiert. Ich ging die vorgeschlagenen Änderungen durch und griff nach Code aus dem Github-Beispiel. Ich werde ehrlich sein, ich bin ratlos, ich nehme den FCM-Token und sende eine Nachricht von der Firebase-Konsole und bekomme nichts.
Ich aktualisiere und es heißt, die Nachricht wurde gesendet, aber ich überprüfe die Konsole und das Gerät und nichts ist da. Was vermisse ich?
Hier ist mein Appdelegate:
%Vor%Hier sind die Protokolle:
%Vor%& gt; & gt; & gt; ------ & gt; ** Gelöst & lt; ------- & lt; & lt; & lt; **
FÜR EINEN TAUCHGANG IN DIE PROBLEMLÖSUNG UND DIE ENTSCHEIDENDE FACEPALM AM ENDE ... FOLGE DIESEM GEWINN: Ссылка
BESONDERE DANK AN DAS RIZ FÜR SEINE ZEIT, UM DAS PROBLEM ZU KENNEN !!
Firebase Cloud Messaging ist ziemlich komplex, um unter iOS korrekt eingerichtet zu werden, da Sie sicherstellen müssen, dass Ihre APNs-Konfiguration funktioniert, und fügen Sie dann FCM hinzu.
APNs Authentication Keys sind auch wirklich nett von Apple, da sie nicht ablaufen, sowohl in Sandbox- als auch Produktionsumgebungen funktionieren und der gleiche Schlüssel (als .p8
-Datei) verwendet werden kann, um Push-Benachrichtigungen an zu senden Alle Apps unter diesem Apple Developer-Konto.
Es führt auch einen neuen Bereich für einen möglichen Fehler ein: Tippfehler . Sie können eine zufällige Bundle-ID eingeben, und solange das richtige "Team" in Xcode konfiguriert ist, erhält Ihre App gerne einen APNs-Geräte-Token.
Senden einer Benachrichtigung an dieses Geräte-Token über APNs (Ich habe dieses Skript verwendet, um Testbenachrichtigungen über HTTP / 2 + Auth Keys zu senden) wird einen DeviceTokenNotForTopic
Fehler ergeben, so dass Sie herausfinden sollten, was schief gelaufen ist.
Checkliste
aps-environment
key auf development
gesetzt hat (dies wird automatisch für Sie in Release-Builds durch Xcode aktualisiert) application:didRegisterForRemoteNotificationsWithDeviceToken:
erhalten. Das bestätigt zumindest, dass deine APNs in Ordnung sind (aber du könntest immer noch einen Tippfehler haben) Stellen Sie sicher, dass die Datei GoogleService-Info.plist
, die Sie verwenden, für die gleiche App wie die BUNDLE_ID
-Schlüssel im plist ist. Ich habe gesehen, dass Entwickler denken, dass APNs Keys in allen ihren Apps funktionieren sollten, dass das gleiche GoogleService-Info.plist
in allen Apps in Ordnung ist, aber das ist nicht der Fall.
Testen
Ich würde auch empfehlen, sich Testbenachrichtigungen per FCMs HTTP-API vom Terminal zu senden , um das Problem zu beheben. Im Gegensatz zur Firebase-Benachrichtigungskonsole erhalten Sie hier alle unbearbeiteten Fehler. Hier ist ein Beispiel:
%Vor% Geben Sie Ihren SERVER_KEY
mit dem Wert in Ihrer Firebase Console & gt; Projekteinstellungen & gt; Cloud Messaging & gt; Serverschlüssel Ersetzen Sie FCM_TOKEN
durch Ihr FCM-Token.
Ich verwende Paw , um Testbenachrichtigungen an meine Apps zu senden, wenn ich am FCM-SDK arbeite.
Tags und Links push-notification ios firebase swift3 firebase-cloud-messaging