Ich habe ein Problem mit Flutter und IOS in Bezug auf Push-Benachrichtigungen.
Mein Setup und Dinge, die funktionieren:
1) Ich habe das firebase_messaging: ^5.1.6
Paket ohne Fehler installiert / alle Anweisungen für IOS befolgt
2) Ich habe den Benutzer um Erlaubnis unter IOS gebeten und akzeptiert, Push-Benachrichtigungen zu erhalten
3) Ich kann ein FCM-Token auf IOS- und Android-Geräten erhalten
4) Ich habe im Apple-Entwicklerbereich einen Schlüssel erstellt und den Schlüssel zu FCM hinzugefügt
5) Ich habe die App geschlossen / beim Testen in den Hintergrund geschickt - immer noch kein Glück
6) Ich habe die Google-Service-Info-Datei mit Xcode zu Runner hinzugefügt
7) Ich habe Push-Benachrichtigungen und Hintergrundbenachrichtigungen in XCode-Funktionen hinzugefügt
8) Ich teste auf einem physischen iPhone 7-Gerät und einem physischen iPad
Ich habe Curl verwendet, um eine Benachrichtigung an ein iOS-Gerät zu senden
curl -X POST --header "Authorization: key=<myAuthKEY>" \
--Header "Content-Type: application/json" \
https://fcm.googleapis.com/fcm/send \
-d "{\"to\":\"<myDeviceKey>\",\"notification\":{\"body\":\"Hello\"},\"priority\":10}"
Ich bekomme eine Erfolgsantwort von Firebase
{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}
So rufe ich den Token ab:
firebaseMessaging.getToken().then((String token) {
_authModel.setNotificationToken(token);
});
Wenn ich die App unter IOS ausführe, werden keine Firebase-Fehler angezeigt.
Ich habe jetzt seit 2 Tagen damit rumgespielt, also wird es ein bisschen nervig, all das scheint auf Android zu funktionieren.
Anregungen bitte.
Flatter Doktor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.4, on Mac OS X 10.15 19A583, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.38.1)
[✓] Connected device (4 available)
• No issues found!
Meine AppDelegate.m-Datei
#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
@import Firebase;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[FIRApp configure];
[GeneratedPluginRegistrant registerWithRegistry:self];
// Override point for customization after application launch.
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
@end