У меня проблема с Flutter и IOS в отношении push-уведомлений.
Мои настройки и вещи, которые работают:
1) Я установил firebase_messaging: ^5.1.6
пакет без ошибок / выполнил все их инструкции для IOS
2) Я запросил у пользователя разрешение на IOS и согласился получать push-уведомления
3) Я могу получить токен FCM на устройствах IOS и Android
4) Я создал ключ в разделе для разработчиков Apple и добавил ключ в FCM
5) Я закрыл приложение / отправил его в фоновом режиме при тестировании - все равно не повезло
6) Я добавил файл google-service-info в Runner, используя Xcode
7) Я добавил push-уведомления и фоновые уведомления в XCode Capabilities
8) Я тестирую на физическом устройстве iPhone 7 и физическом iPad
Я использовал curl для отправки уведомления на устройство IOS
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}"
Я получаю ответ от Firebase
{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}
Вот как я получаю токен:
firebaseMessaging.getToken().then((String token) {
_authModel.setNotificationToken(token);
});
Когда я запускаю приложение на IOS, я не получаю никаких ошибок Firebase.
Я возился с этим уже 2 дня, так что это немного раздражает, все вышеперечисленное работает на Android.
Любые предложения, пожалуйста.
Флаттер Доктор:
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!
Мой файл AppDelegate.m
#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
источник
Ответы:
Это не очень красиво, вам может потребоваться предоставить гораздо больше подробностей, но, пожалуйста, сообщите об этом по адресу https://github.com/FirebaseExtended/flutterfire/issues . В противном случае быстрый поиск проблем с push-уведомлениями в iOS покажет множество отчетов. Вот несколько подобных, может быть, один из них связан с вашим?
5) I have closed the app / sent it to the background when testing - still no luck
Или, если вы уже подали заявку, поделитесь ссылкой! Другие могут добавить отзыв к вашему.
источник
Если вы тестируете на плюшевом устройстве ios 10, попробуйте добавить следующие строки в файл AppDelegate.swift ниже FirebaseApp.configure ()
источник
Вы должны тщательно выполнить все шаги из https://pub.dev/packages/firebase_messaging . Я тоже застрял в этом. Но позже я понял, что что-то упустил. Затем я проверяю все шаги. Я пропустил регистрацию в APN (Apple Push Notification). Поэтому, пожалуйста, перепроверьте еще раз.
источник