Solvedflutterfire πŸ› [firebase_messaging] iOS Notifications not received in 8.0.0-dev.8

Bug report

Describe the bug

After upgrading to 8.0.0-dev.8 from 7.0.3, iOS does not receive/respond to push notifications i.e. no handlers or events fire. With 7.0.3, foreground notifications were working but not background notifications, which is the reason for upgrading to 8.x.

Android is fine whether in foreground or background, or terminated. Trace information from iOS shows that initialization succeeds without error. The iOS trace is the same as that from Android and shows no irregularities. iOS Requests permission, which I grant. Settings reports that all permissions are granted as expected.

I'm using an iPhone 6 physical device running iOS 12.4.9 and the flutter_local_notifications plugin. APNs is configured with a .p8 Authentication Key. When I send a notification via FCM to the iPhone, the response reports success with success: 1, failure: 0 and a valid message_id.

Steps to reproduce

Steps to reproduce the behavior:

  1. Install and configure the firebase_messaging: ^8.0.0-dev.8 plugin as per documentation and examples.
  2. Send a push notification to an iPhone via FCM.

Expected behavior

One of [FirebaseMessaging.onMessage, FirebaseMessaging.onBackgroundMessage, FirebaseMessaging.onMessageOpenedApp] should fire. I've added trace information to each handler and it appears that they are never invoked on iOS. As mentioned earlier, all work as expected in Android.


Additional context

AppDelegate.swift includes:

    if #available(iOS 10.0, *) {
      UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate
    }

Info.plist includes:

    <key>FirebaseAppDelegateProxyEnabled</key>
    <false/>
    <key>UIBackgroundModes</key>
    <array>
        <string>fetch</string>
        <string>processing</string>
        <string>remote-notification</string>
    </array>

I have tried various things to enable/disable method swizzling and also with/without the entry in info.plist. The setting appears to have no effect.

project.pbxproj includes:

/* Begin PBXProject section */
		97C146E61CF9000F007C117D /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 1020;
				ORGANIZATIONNAME = "**************";
				TargetAttributes = {
					97C146ED1CF9000F007C117D = {
						CreatedOnToolsVersion = 7.3.1;
						DevelopmentTeam = **********;
						LastSwiftMigration = 1100;
						SystemCapabilities = {
							com.apple.BackgroundModes = {
								enabled = 1;
							};
							com.apple.Push = {
								enabled = 1;
							};
						};
					};
				};

I believe I do not require an entitlements file with CODE_SIGN_ENTITLEMENTS pointing to it to specify the aps-environment, because FCM is configured with a .p8 key and not environment-specific certificates.

Sending notifications

I have tried with/without and all possible values for priority and content-available when sending the notification via FCM without any observable change in behavior.


Flutter doctor

Run flutter doctor and paste the output below:

Click To Expand
[√] Flutter (Channel stable, 1.22.3, on Microsoft Windows [Version 10.0.19041.610], locale en-GI)
    β€’ Flutter version 1.22.3 at ...
    β€’ Framework revision 8874f21e79 (13 days ago), 2020-10-29 14:14:35 -0700
    β€’ Engine revision a1440ca392
    β€’ Dart version 2.10.3

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    β€’ Android SDK at ...
    β€’ Platform android-30, build-tools 30.0.2
    β€’ Java binary at: ...
    β€’ Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    β€’ All Android licenses accepted.

[√] Android Studio (version 3.6)
    β€’ Android Studio at ...
    β€’ Flutter plugin version 46.0.1
    β€’ Dart plugin version 192.8052
    β€’ Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

[!] Android Studio (version 4.1.0)
    β€’ Android Studio at ...
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
    β€’ Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (1 available)
    β€’ Android SDK built for x86 (mobile) β€’ emulator-5554 β€’ android-x86 β€’ Android 10 (API 29) (emulator)

! Doctor found issues in 1 category.

I run multiple versions of Android Studio side-by-side, so ignore the incorrect warnings about the Dart and Flutter plugins not being installed in 4.x (they most certainly are.)


Flutter dependencies

Run flutter pub deps -- --style=compact and paste the output below:

Click To Expand
dependencies:
- bcv_domain 0.0.0 [bcv_global intl decimal]
- bcv_global 0.0.0 [intl decimal uuid]
- carousel_slider 2.3.1 [flutter]
- charts_flutter 0.9.0 [charts_common collection flutter intl logging meta]
- contacts_service 0.4.6 [flutter collection quiver]
- decimal 0.3.5 [rational]
- file_picker 2.0.0 [flutter flutter_web_plugins flutter_plugin_android_lifecycle plugin_platform_interface]
- firebase_core 0.5.2 [firebase_core_platform_interface flutter quiver meta firebase_core_web]
- firebase_messaging 8.0.0-dev.8 [meta flutter firebase_core firebase_core_platform_interface firebase_messaging_platform_interface]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_local_notifications 3.0.1+2 [flutter platform flutter_local_notifications_platform_interface timezone]
- geolocator 6.1.6 [flutter geolocator_platform_interface]
- google_sign_in 4.5.6 [google_sign_in_platform_interface flutter meta google_sign_in_web]
- http 0.12.2 [http_parser path pedantic]
- image_picker 0.6.7+14 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface]
- intl 0.16.1 [path]
- numberpicker 1.2.1 [flutter infinite_listview]
- package_info 0.4.3+2 [flutter]
- permission_handler 5.0.1+1 [flutter meta permission_handler_platform_interface]
- photo_view 0.10.2 [flutter]
- qr_flutter 3.2.0 [flutter qr]
- shared_preferences 0.5.12+4 [meta flutter shared_preferences_platform_interface shared_preferences_linux shared_preferences_macos shared_preferences_web shared_preferences_windows]
- validators 2.0.1 [vin_decoder]
- wc_flutter_share 0.2.2 [flutter path_provider]

dev dependencies:
- flutter_launcher_icons 0.7.5 [image args yaml]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]
- pedantic 1.9.2 [meta]

transitive dependencies:
- archive 2.0.13 [crypto args path]
- args 1.6.0
- asn1lib 0.6.5
- async 2.5.0-nullsafety.1 [collection]
- basic_utils 2.6.3 [http logging json_annotation pointycastle asn1lib convert crypto]
- boolean_selector 2.1.0-nullsafety.1 [source_span string_scanner]
- characters 1.1.0-nullsafety.3
- charcode 1.2.0-nullsafety.1
- charts_common 0.9.0 [collection intl logging meta vector_math]
- clock 1.1.0-nullsafety.1
- collection 1.15.0-nullsafety.3
- convert 2.1.1 [charcode typed_data]
- crypto 2.1.5 [collection convert typed_data]
- fake_async 1.2.0-nullsafety.1 [clock collection]
- ffi 0.1.3
- file 5.2.1 [intl meta path]
- firebase_core_platform_interface 2.0.0 [flutter meta plugin_platform_interface quiver]
- firebase_core_web 0.2.1 [firebase_core_platform_interface flutter flutter_web_plugins meta js]
- firebase_messaging_platform_interface 1.0.0-dev.5 [flutter meta firebase_core plugin_platform_interface]
- flutter_local_notifications_platform_interface 2.0.0 [flutter plugin_platform_interface]
- flutter_plugin_android_lifecycle 1.0.11 [flutter]
- flutter_web_plugins 0.0.0 [flutter characters collection meta typed_data vector_math]
- geolocator_platform_interface 1.0.8 [flutter meta plugin_platform_interface vector_math]
- google_sign_in_platform_interface 1.1.2 [flutter meta quiver]
- google_sign_in_web 0.9.2 [google_sign_in_platform_interface flutter flutter_web_plugins meta js]
- http_parser 3.1.4 [charcode collection source_span string_scanner typed_data]
- image 2.1.18 [archive xml meta]
- image_picker_platform_interface 1.1.1 [flutter meta http plugin_platform_interface]
- infinite_listview 1.0.1+1 [flutter]
- js 0.6.2
- json_annotation 3.0.1
- logging 0.11.4
- matcher 0.12.10-nullsafety.1 [stack_trace]
- meta 1.3.0-nullsafety.3
- path 1.8.0-nullsafety.1
- path_provider 1.6.24 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows]
- path_provider_linux 0.0.1+2 [path xdg_directories path_provider_platform_interface flutter]
- path_provider_macos 0.0.4+6 [flutter]
- path_provider_platform_interface 1.0.4 [flutter meta platform plugin_platform_interface]
- path_provider_windows 0.0.4+3 [path_provider_platform_interface meta path flutter ffi win32]
- permission_handler_platform_interface 2.0.1 [flutter meta plugin_platform_interface]
- petitparser 3.1.0 [meta]
- platform 2.2.1
- plugin_platform_interface 1.0.3 [meta]
- pointycastle 1.0.2
- process 3.0.13 [file intl meta path platform]
- qr 1.3.0 [meta]
- quiver 2.1.5 [matcher meta]
- random_string 2.1.0
- rational 0.3.8
- shared_preferences_linux 0.0.2+4 [file flutter meta path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 0.0.1+11 [shared_preferences_platform_interface flutter]
- shared_preferences_platform_interface 1.0.4 [meta flutter]
- shared_preferences_web 0.1.2+7 [shared_preferences_platform_interface flutter flutter_web_plugins meta]
- shared_preferences_windows 0.0.1+3 [shared_preferences_platform_interface flutter ffi file meta path path_provider_platform_interface path_provider_windows]
- sky_engine 0.0.99
- source_span 1.8.0-nullsafety.2 [charcode collection path term_glyph]
- stack_trace 1.10.0-nullsafety.1 [path]
- stream_channel 2.1.0-nullsafety.1 [async]
- string_scanner 1.1.0-nullsafety.1 [charcode source_span]
- term_glyph 1.2.0-nullsafety.1
- test_api 0.2.19-nullsafety.2 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timezone 0.5.9 [path]
- typed_data 1.3.0-nullsafety.3 [collection]
- uuid 2.2.2 [crypto convert]
- vector_math 2.1.0-nullsafety.3
- vin_decoder 0.1.2 [meta basic_utils http random_string]
- win32 1.7.3 [ffi]
- xdg_directories 0.1.2 [meta path process]
- xml 4.5.1 [collection convert meta petitparser]
- yaml 2.2.1 [charcode collection string_scanner source_span]

The frustrating part is that I do not have XCode or a Mac. Each cloud build takes around 20 minutes, and costs money. I haven't ruled out the possibility of the XCode project configuration being slightly incomplete/incorrect due to not having access to XCode, however I have tried everything I can think of, and have run out of resources providing hints as to what the problem might be.

So far, two full days have been spent trying to get this to work.

41 Answers

βœ”οΈAccepted Answer

I'm afraid to say that iOS is still completely dead for me on dev.9

Other Answers:

Have the same problem on iOS

Same problem here, on iOS 14.2 I cannot receive the notifications at all.

Related Issues:

381
flutterfire [firebase_core_web , firebase_auth_web, cloud_firestore_web ] Plugin project :firebase_auth_web not found. Please update settings.gradle.
Hi @gsusI Please add this in flutter app -> android -> settings.gradle if you disagree please write ...
60
flutterfire [FIREBASE_AUTH] 'UserAgent.h' file not found flutter firebase iOS
I changed dependencies try this Don't use ^ in version. I am working on flutter application with fir...
59
flutterfire [firebase_messaging] <Background push notification handling - no implementation found for method FcmDartService#initialized>
So in the new firebase_messaging version support for background messages was added Actually if you d...
57
flutterfire [firebase_auth] iOS verifyPhoneNumber Token mismatch
Same problem with firebase_auth: 0.15.5+3: on the simulator I get the CAPTCHA code and it works ...
37
flutterfire [firebase_auth] iOS doesn't build when upgrade to 1.15.x
I fixed this temporarily by running pod update in ios folder Describe the bug Flutter app doesn't bu...
36
flutterfire πŸ› [firebase_auth] Incompatible with latest flutter_localizations master channel.
For now you can simply add the following to your pubspec.yaml if you need to stay on dev channel and...
34
flutterfire [cloud_firestore] no visible @interface for 'FIRQuery' declares the selector ...
cd ios and run pod update Firebase/Firestore and run build command let me know ...
32
flutterfire [firebase_messaging] Application.kt: Type mismatch: inferred type is PluginRegistry but FlutterEngine was expected
There is a workaround mentioned in: #1613 Replace: To: Also temporary downgrade firebase_messaging t...
31
flutterfire Firebase messaging onResume and onMessage broken on iOS since Flutter 1.7.4
everybody: What would be possible other implications when removing that code? Removing those lines m...
29
flutterfire [firebase_auth] Method swizzling problem with phone auth iOS
@cielo Hi Yes i did I got Token mismatch too But when i fixed AppDelegate.swift i solved this error ...
29
flutterfire [firebase_admob 0.11.0+1] XCode Build Fails: Google-Mobile-Ads-SDK-fjgkwjemgangjofelixrcilvndtg
Hey guys I think this is because AdMob recently updated their SDK to 8.0.0(because of this firebase_...
28
flutterfire [firebase_messaging] Type mismatch: inferred type is PluginRegistry? but FlutterEngine was expected
Fixed by replace with: Following the instructions on pub.dev for handling background messages doesn'...
28
flutterfire [firebase_messaging] Android v2 embedding crashes
Why is this not labelled severe? This causes crash dialogs to show periodically when the application...
26
flutterfire πŸ› [firebase_messaging][firebase_auth] Data-only messages not received in iOS. Never fires anything in onMessage
Disabling method swizzling and using the below in my AppDelegate.swift Bug report Describe the bug O...
23
flutterfire πŸ› [firebase_remote_config: 0.4.1] Plugin using removed method, causing app to crash
Fixed for me by using implementation platform('com.google.firebase:firebase-bom') instead of impleme...
22
flutterfire [firebase_messaging] The application cannot be created when I add the Aplication.java
Hi I want to use firebase notifications in my application I'm adding Aplication.java for this After ...
22
flutterfire πŸ› [Crashlytics] iOS build crashes when adding crashlytics
@kuromukira Workaround for Flutter 2.0.4 is to use firebase_crashlytics from git instead of pub.dev ...
21
flutterfire [Cloud Firestore] fatal error: module 'cloud_firestore' not found
I think I managed to workaround the issue I got this error as well after integrating cocoapods mysel...
20
flutterfire Warnings from the cloud_firestore plugin on Android: FirebaseCorePlugin.java uses unchecked or unsafe operations
set: multiDexEnabled true solved for me project/android/app/build.gradle: Steps to Reproduce Create ...
18
flutterfire firebase-messaging: Android Integration
@OliverWangWei Sorry.. It was a mistake to edit the MainActivity.kr file Android Integration I'm not...
18
flutterfire [firebase_crashlytics] Either the Crashlytics plugin doesn't work, or the instruction is wrong
Having the same issue even with a really simple app: I followed the setup instruction from Pub: http...
18
flutterfire πŸ› [firebase_core] java.lang.IllegalArgumentException: Service not registered: com.google.android.gms.measurement.internal.zzji@dbed45a
I get the same error as @kw2019ltd : I get it in a new created flutter project with the only depende...
17
flutterfire [firebase_messaging] version 6.0.7 brokes builds
I solved it. Adding the plugin dependencies in app/build.gradle My project cannot be built or runned...
16
flutterfire [all] Flutter Android build fails with firebase dependencies.
Hey @erluxman I am using Android Studio 3.5 stable java -version 1.8 and this is the issue : I have ...
16
flutterfire [cloud_firestore] INTERNAL ASSERTION FAILED: A transaction object cannot be used after its update callback has been invoked.
Tracked this down to Firebase offline use and Transactions Describe the bug App crash when adding ne...
16
flutterfire [firebase_admob] ads invades safe area and close button is blocked on iPhone X
Having the same problem Temporary solution: Hide status bar when ads are shown Hope this issue will ...
14
flutterfire [firebase_messaging] iOS notification onResume, onLaunch callback not working
@AlexandreRoba @SandyAra same issue exists or your comment solution working fine on firebase_messagi...
14
13
flutterfire [firebase_messaging] No documentation for Android v2 embedding backgroundMessage handler
Solved it with following: app/src/build.gradle add the following: implementation com.google.firebase...
13
flutterfire Unable to use onBackgroundMessage in Firebase Cloud Messaging
Finally I got something working! I ended up using a named ReceivePort I am trying to implement an ap...
13
flutterfire πŸ› [CLOUD_FIRESTORE] The service is currently unavailable.
Keeps happening...!! what is going on ? Bug report I'm try to use Firestore with Flutter Deskop (Mac...
12
flutterfire [firebase_in_app_messaging] Can't build for iOS after adding firebase_in_app_messaging
I found out how to fix this Initially Describe the bug The XCode build fails when it's processing th...
8
flutterfire πŸ› [firebase_messaging] iOS Notifications not received in 8.0.0-dev.8
I'm afraid to say that iOS is still completely dead for me on dev.9 Bug report Describe the bug Afte...
7
flutterfire πŸ› [Firebase_auth] Not persisting user on authStateChanges stream after 1.1.2
I agree with @budo385 My app was working fine with firebase_auth 1.1.0 version ...
7
flutterfire [firebase_auth] The reload() function on a FirebaseUser doesn't seem to be working.
Please fix this Hey when calling the .reload() function on a FirebaseUser nothing seems to happen ...
6
flutterfire πŸ› [firebase_crashlytics] Failed to retrieve settings from https://firebase-settings.crashlytics.com
May be it's a 24 hours patience game or try the solution below: Few changes made were: Add implement...
5
flutterfire [<Firebase_Auth>] Unhandled Platform Exception Before Able to Catch SignInWithEmailAndPassword FirebaseAuthException
I am able to replicate this issue on latest stable (1.20.3) while debugging signInWithEmailAndPasswo...
3
flutterfire [Firebase Messaging] onBackgroundMessage Never Called
this is how i have created a Notification Handler Class I followed the tutorial on how to add the li...
3
flutterfire [firebase_messaging] firebase_messaging plugin causing build error in android
@DagobertDokate comment out firebase_messaging: ^5.1.5 run flutter pub get then add firebase_messagi...
3
flutterfire Flutter heads up notification for Android
@abdallahshaban557 @vipinnegi90 For Now use flutter_local_notification to create a notification chan...
3
flutterfire πŸ› [Firebase_Auth] Auth Blocking iOS firebase_messaging dev callbacks
Have the same problem on iOS πŸ˜• Bug report Describe the bug didReceiveRemoteNotification is used in ...
3
flutterfire πŸ› [firebase_messaging] Can't use 3rd party plugins in background handler
@asmodeoux @markusaksli-nc Allright I'm back with a workaround Bug report Describe the bug None of 3...
459
flutter Multiple commands produce '/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/Flutter.framework
I was able to fix it by opening the Runner workspace project in Xcode 10 Then navigate to File ...
449
flutter App Store iOS submission fails: The bundle Runner.app/Frameworks/App.framework does not support the minimum OS Version specified in the Info.plist
After doing a flutter clean changing MinimumOSVersion (inside /ios/Flutter/AppframeworkInfo.plist) t...
418
flutter 'com.android.support:appcompat-v7' has different version for the compile (26.1.0) and runtime (27.0.1) classpath
is like this i receive an error when i run flutter run My gradle.build file is: flutter doctor: ...
409
flutter Why does my text not wrap?
You have to wrap Column in a flexible Without flexible the column's width is not constrained to the ...
383
flutter Unexpected top padding in ListView put inside scaffold with no appBar
Yeah this is intentional If you put a widget before the ListView you should wrap the ListView with a...