Flutter FCM FirebaseMessaging.onBackgroundMessage не вызывается в режиме выпуска iOS (тихая передача только данных, возмIOS

Программируем под IOS
Ответить
Anonymous
 Flutter FCM FirebaseMessaging.onBackgroundMessage не вызывается в режиме выпуска iOS (тихая передача только данных, возм

Сообщение Anonymous »

В приложении чата Flutter, использующем только данные FCM с Awesome_notifications для локальных уведомлений, FirebaseMessaging.onBackgroundMessage отлично работает при отладке Android (все состояния) и iOS (передний план/фон), но в выпуске iOS происходит сбой без уведомления, когда приложение находится в фоновом режиме/завершено.
Настройка (проверено при отладке)
main_bootstrap.dart:

Код: Выделить всё

dart
await Firebase.initializeApp(options: firebaseOptions);
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler); // Top-level handler with @pragma('vm:entry-point')
runApp(ProviderScope(child: MainApp()));
Возможности Xcode (цель выпуска):
✅ Push-уведомления
✅ Фоновые режимы → Удаленные уведомления + фоновая выборка
Полезная нагрузка FCM (только данные, без звука):

Код: Выделить всё

json
{
"tokens": ["device_token"],
"data": {
"roomId": "123",
"roomType": "group",
"senderName": "Ahmed",
"preview": "Hello there",
"timestamp": "1735400000000"
},
"apns": {
"payload": { "aps": { "content-available": 1 } },
"headers": { "apns-push-type": "background", "apns-priority": "5" }
}
}
Минимальный обработчик теста (по-прежнему не работает в фоновом режиме выпуска iOS):

Код: Выделить всё

dart
@pragma('vm:entry-point')
Future firebaseMessagingBackgroundHandler(RemoteMessage message) async {
await Firebase.initializeApp();
print('🔥 BACKGROUND: ${message.messageId}'); // Never appears in Xcode logs
}
Вопросы:
Это ограничение, специфичное для версии iOS, при котором тихие push-уведомления регулируются/отключаются более агрессивно, чем отладка, даже при правильном контенте-доступном:1 + apns-push-type:background?
Проблема с версией firebase_messaging? Использование последней версии firebase_messaging: ^15.0.0 – есть ли известные ошибки сборки выпуска?
Какие настройки сборки Xcode отличаются в отладочной/выпускной версии, которые могут блокировать вызов фонового обработчика?
Обходной путь для приложений чата? Должен ли я отправлять двойные полезные нагрузки (без звука для фонового обработчика + видимое уведомление в качестве резервного варианта) или существует надежный шаблон выпуска?

Подробнее здесь: https://stackoverflow.com/questions/798 ... lease-mode
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»