Estou tendo um problema com o Flutter e o IOS em relação às notificações por push.
Minha configuração e coisas que funcionam:
1) Eu instalei o firebase_messaging: ^5.1.6
pacote sem erros / segui todas as instruções para o IOS
2) Pedi permissão ao usuário no IOS e aceitei receber notificações por push
3) Consigo obter um token FCM em dispositivos IOS e Android
4) Criei uma chave na seção desenvolvedor da Apple e adicionei a chave ao FCM
5) Fechei o aplicativo / enviei-o para segundo plano durante o teste - ainda sem sorte
6) Adicionei o arquivo google-service-info ao Runner usando o Xcode
7) Adicionei notificações push e notificações em segundo plano no XCode Capabilities
8) Estou testando em um dispositivo físico iPhone 7 e em um iPad físico
Eu usei o curl para enviar uma notificação para um dispositivo 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}"
Recebo uma resposta bem-sucedida do firebase
{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}
Aqui está como eu recupero o token:
firebaseMessaging.getToken().then((String token) {
_authModel.setNotificationToken(token);
});
Quando executo o aplicativo no IOS, não recebo erros do Firebase.
Estou brincando com isso há 2 dias, então está ficando um pouco chato, tudo acima parece funcionar no Android.
Alguma sugestão, por favor.
Médico Flutter:
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!
Meu arquivo 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