Solvedflutterfire [firebase_in_app_messaging] Can't build for iOS after adding firebase_in_app_messaging

red42
1028

Describe the bug
The XCode build fails when it's processing the Firebase In-App messaging native code. Relevant code output:

/Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:33:5: error: unknown type name 'FIRInAppMessaging'; did you mean 'FIRMessaging'?
        FIRInAppMessaging *fiam = [FIRInAppMessaging inAppMessaging];
        ^~~~~~~~~~~~~~~~~
        FIRMessaging
    In module 'FirebaseMessaging' imported from /Users/bota/svn/mangos/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
    /Users/bota/svn/mangos/ios/Pods/FirebaseMessaging/Firebase/Messaging/Public/FIRMessaging.h:270:12: note: 'FIRMessaging' declared here
    @interface FIRMessaging : NSObject
               ^
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:33:32: error: unknown receiver 'FIRInAppMessaging'; did you mean 'FIRMessaging'?
        FIRInAppMessaging *fiam = [FIRInAppMessaging inAppMessaging];
                                   ^~~~~~~~~~~~~~~~~
                                   FIRMessaging
    In module 'FirebaseMessaging' imported from /Users/bota/svn/mangos/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
    /Users/bota/svn/mangos/ios/Pods/FirebaseMessaging/Firebase/Messaging/Public/FIRMessaging.h:270:12: note: 'FIRMessaging' declared here
    @interface FIRMessaging : NSObject
               ^
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:33:50: error: no known class method for selector 'inAppMessaging'
        FIRInAppMessaging *fiam = [FIRInAppMessaging inAppMessaging];
                                                     ^~~~~~~~~~~~~~
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:34:11: error: no visible @interface for 'FIRMessaging' declares the selector 'triggerEvent:'
        [fiam triggerEvent:eventName];
         ~~~~ ^~~~~~~~~~~~
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:38:5: error: unknown type name 'FIRInAppMessaging'; did you mean 'FIRMessaging'?
        FIRInAppMessaging *fiam = [FIRInAppMessaging inAppMessaging];
        ^~~~~~~~~~~~~~~~~
        FIRMessaging
    In module 'FirebaseMessaging' imported from /Users/bota/svn/mangos/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
    /Users/bota/svn/mangos/ios/Pods/FirebaseMessaging/Firebase/Messaging/Public/FIRMessaging.h:270:12: note: 'FIRMessaging' declared here
    @interface FIRMessaging : NSObject
               ^
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:38:32: error: unknown receiver 'FIRInAppMessaging'; did you mean 'FIRMessaging'?
        FIRInAppMessaging *fiam = [FIRInAppMessaging inAppMessaging];
                                   ^~~~~~~~~~~~~~~~~
                                   FIRMessaging
    In module 'FirebaseMessaging' imported from /Users/bota/svn/mangos/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
    /Users/bota/svn/mangos/ios/Pods/FirebaseMessaging/Firebase/Messaging/Public/FIRMessaging.h:270:12: note: 'FIRMessaging' declared here
    @interface FIRMessaging : NSObject
               ^
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:38:50: error: no known class method for selector 'inAppMessaging'
        FIRInAppMessaging *fiam = [FIRInAppMessaging inAppMessaging];
                                                     ^~~~~~~~~~~~~~
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:39:10: error: property 'messageDisplaySuppressed' not found on object of type 'FIRMessaging *'
        fiam.messageDisplaySuppressed = [suppress boolValue];
             ^
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:43:5: error: unknown type name 'FIRInAppMessaging'; did you mean 'FIRMessaging'?
        FIRInAppMessaging *fiam = [FIRInAppMessaging inAppMessaging];
        ^~~~~~~~~~~~~~~~~
        FIRMessaging
    In module 'FirebaseMessaging' imported from /Users/bota/svn/mangos/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
    /Users/bota/svn/mangos/ios/Pods/FirebaseMessaging/Firebase/Messaging/Public/FIRMessaging.h:270:12: note: 'FIRMessaging' declared here
    @interface FIRMessaging : NSObject
               ^
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:43:32: error: unknown receiver 'FIRInAppMessaging'; did you mean 'FIRMessaging'?
        FIRInAppMessaging *fiam = [FIRInAppMessaging inAppMessaging];
                                   ^~~~~~~~~~~~~~~~~
                                   FIRMessaging
    In module 'FirebaseMessaging' imported from /Users/bota/svn/mangos/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
    /Users/bota/svn/mangos/ios/Pods/FirebaseMessaging/Firebase/Messaging/Public/FIRMessaging.h:270:12: note: 'FIRMessaging' declared here
    @interface FIRMessaging : NSObject
               ^
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:43:50: error: no known class method for selector 'inAppMessaging'
        FIRInAppMessaging *fiam = [FIRInAppMessaging inAppMessaging];
                                                     ^~~~~~~~~~~~~~
    /Users/bota/.pub-cache/hosted/pub.dartlang.org/firebase_in_app_messaging-0.1.1+3/ios/Classes/FirebaseInAppMessagingPlugin.m:44:10: error: property 'automaticDataCollectionEnabled' not found on object of type 'FIRMessaging *'
        fiam.automaticDataCollectionEnabled = [enabled boolValue];
             ^
    12 errors generated.

Relevant packages:

dependencies:
  flutter:
    sdk: flutter

  google_sign_in: ^4.0.1+3
  flutter_facebook_login: ^3.0.0
  firebase_auth: 0.15.3
  firebase_analytics: ^5.0.11
  cloud_firestore: ^0.13.2+1
  cloud_functions: ^0.4.2+2
  firebase_messaging: ^6.0.9
  firebase_in_app_messaging: ^0.1.1+3
  firebase_remote_config: ^0.2.0+3
  firebase_dynamic_links: ^0.5.0+9
  firebase_crashlytics: ^0.1.2+5
  firebase_storage: ^3.1.1

dependency_overrides:
  firebase_core: 0.4.4

Additional context
Flutter doctor -v

[] Flutter (Channel beta, v1.14.6, on Mac OS X 10.15.3 19D76, locale en-BR)
     Flutter version 1.14.6 at /Users/bota/flutter
     Framework revision fabeb2a16f (6 weeks ago), 2020-01-28 07:56:51 -0800
     Engine revision c4229bfbba
     Dart version 2.8.0 (build 2.8.0-dev.5.0 fc3af737c7)

 
[] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
     Android SDK at /Users/bota/Library/Android/sdk
     Android NDK location not configured (optional; useful for native profiling support)
     Platform android-29, build-tools 28.0.3
     Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
     Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
     All Android licenses accepted.

[] Xcode - develop for iOS and macOS (Xcode 11.3.1)
     Xcode at /Applications/Xcode.app/Contents/Developer
     Xcode 11.3.1, Build version 11C504
     CocoaPods version 1.8.4

[] Android Studio (version 3.5)
     Android Studio at /Applications/Android Studio.app/Contents
     Flutter plugin version 43.0.1
     Dart plugin version 191.8593
     Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[] VS Code (version 1.42.0)
     VS Code at /Applications/Visual Studio Code.app/Contents
     Flutter extension version 3.8.1

[] Connected device (2 available)
     falcon           0422640871                                android-arm  Android 5.1.1 (API 22)
     Rafael's iPhone • 1163974e4a6e4af3506e39396c8fabc9e8ca7b79 • ios         • iOS 12.4.5

 No issues found!
28 Answers

✔️Accepted Answer

I found out how to fix this

Initially, I had a problem where my Flutter project won't build after adding Firebase In App Messaging plugin with this error
ld: 2 duplicate symbols for architecture arm64

I solved that particular error by running

  • close .xcworkspace
  • flutter clean
  • delete Podfile.lock
  • pod disintegrate
  • pod install

but hit another one..

source
looks like some remnant file causing an issue, would be great if someone could explain whats happening here..

On the next build attempt, I hit the same error as this Issue

Then I manage to solve it by using these specific versions together

  • Firebase (6.15.0)
  • FirebaseInAppMessaging (0.16.0)

My pod install kept installing Firebase (6.17.0) and FirebaseInAppMessaging (0.18.0) by default
what determines which version of a pod is chosen during installation? Would be nice if someone could explain this too

So I forced it to use an older version by adding
pod 'Firebase', '6.15.0'
pod 'FirebaseInAppMessaging', '0.16.0'
at the end of my Podfile

that solved the issue.

I hope this helps someone, I spent a full day just getting FirebaseInAppMessaging to work

Extra notes:
Here is the terminal output of a list of Firebase pods and their versions that were installed in a Flutter app that builds and runs

Installing Firebase (6.15.0)
Installing FirebaseAnalytics (6.2.1)
Installing FirebaseAnalyticsInterop (1.5.0)
Installing FirebaseAuth (6.4.3)
Installing FirebaseAuthInterop (1.0.0)
Installing FirebaseCore (6.6.0)
Installing FirebaseCoreDiagnostics (1.2.0)
Installing FirebaseCoreDiagnosticsInterop (1.2.0)
Installing FirebaseFirestore (1.9.0)
Installing FirebaseInAppMessaging (0.16.0)
Installing FirebaseInAppMessagingDisplay (0.15.5)
Installing FirebaseInstallations (1.1.0)
Installing FirebaseInstanceID (4.3.1)
Installing FirebaseMessaging (4.2.1)

Other Answers:

Happening to us in our project as well. I'm hesitant to use the workaround, since manually adding things to the podfile feels pretty janky. The podfile is supposed to be generated during the build phase, and I don't want to have to manually change that every time I want to upgrade firebase versions.

A fix would be greatly appreciated, and is a must-have before we integrate it back into our project.

This issue has been occurring since 2020.2. #1956
So, we should upvote #2701, #2151 and #1957. Perhaps this issue has not received little attention...

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...