xcodefirebaseflutterflutter-pluginfirebase-in-app-messaging

Flutter Cannot complie project when using Firebase In App Messaging plugin


I successfully implemented the plugin on android but when I try to start the app on ios I'm getting an error message. When I disable the plugin and reinstall the app on ios, everything works just fine. Here is my console log:

Launching lib/main.dart on iPhone 5s in debug mode...
Running pod install...
Warning: Podfile is out of date
  This can cause a mismatched version of Flutter to be embedded in your app, which may result in App Store submission rejection or crashes.
  If you have local Podfile edits you would like to keep, see https://github.com/flutter/flutter/issues/24641 for instructions.
To regenerate the Podfile, run:
  rm ios/Podfile

Running Xcode build...
Xcode build done.                                           41,0s
Could not build the application for the simulator.
Error launching application on iPhone 5s.
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **


Xcode's output:
↳
    While building module 'FirebaseInAppMessaging' imported from /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/ios/Pods/FirebaseInAppMessagingDisplay/Firebase/InAppMessagingDisplay/FIDBaseRenderingViewController.h:19:
    In file included from <module-includes>:1:
    In file included from /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/ios/Pods/Target Support Files/FirebaseInAppMessaging/FirebaseInAppMessaging-umbrella.h:13:
    /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/ios/Pods/FirebaseInAppMessaging/FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging.h:21:2: warning: The FirebaseInAppMessagingDisplay subspec is deprecated. Please remove FirebaseInAppMessagingDisplay from your Podfile (or delete the framework). [-W#warnings]
    #warning The FirebaseInAppMessagingDisplay subspec is deprecated. Please remove FirebaseInAppMessagingDisplay from your Podfile (or delete the framework).
     ^
    1 warning generated.
    1 warning generated.
    1 warning generated.
    1 warning generated.
    While building module 'FirebaseInAppMessaging' imported from /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/ios/Pods/Headers/Public/Firebase/Firebase.h:53:
    In file included from <module-includes>:1:
    In file included from /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/ios/Pods/Target Support Files/FirebaseInAppMessaging/FirebaseInAppMessaging-umbrella.h:13:
    /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/ios/Pods/FirebaseInAppMessaging/FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging.h:21:2: warning: The FirebaseInAppMessagingDisplay subspec is deprecated. Please remove FirebaseInAppMessagingDisplay from your Podfile (or delete the framework). [-W#warnings]
    #warning The FirebaseInAppMessagingDisplay subspec is deprecated. Please remove FirebaseInAppMessagingDisplay from your Podfile (or delete the framework).
     ^
    1 warning generated.
    1 warning generated.
    While building module 'FirebaseInAppMessaging' imported from /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/ios/Pods/Headers/Public/Firebase/Firebase.h:53:
    In file included from <module-includes>:1:
    In file included from /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/ios/Pods/Target Support Files/FirebaseInAppMessaging/FirebaseInAppMessaging-umbrella.h:13:
    /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/ios/Pods/FirebaseInAppMessaging/FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging.h:21:2: warning: The FirebaseInAppMessagingDisplay subspec is deprecated. Please remove FirebaseInAppMessagingDisplay from your Podfile (or delete the framework). [-W#warnings]
    #warning The FirebaseInAppMessagingDisplay subspec is deprecated. Please remove FirebaseInAppMessagingDisplay from your Podfile (or delete the framework).
     ^
    1 warning generated.
    1 warning generated.
    duplicate symbol '_OBJC_CLASS_$_FIRIAMDefaultDisplayImpl' in:
        /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/build/ios/Debug-iphonesimulator/FirebaseInAppMessaging/FirebaseInAppMessaging.framework/FirebaseInAppMessaging(FIRIAMDefaultDisplayImpl.o)
        /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/build/ios/Debug-iphonesimulator/FirebaseInAppMessagingDisplay/FirebaseInAppMessagingDisplay.framework/FirebaseInAppMessagingDisplay(FIRIAMDefaultDisplayImpl.o)
    duplicate symbol '_OBJC_METACLASS_$_FIRIAMDefaultDisplayImpl' in:
        /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/build/ios/Debug-iphonesimulator/FirebaseInAppMessaging/FirebaseInAppMessaging.framework/FirebaseInAppMessaging(FIRIAMDefaultDisplayImpl.o)
        /Users/manolo/Developer/flutterprojects/fitness_recipes_clean/build/ios/Debug-iphonesimulator/FirebaseInAppMessagingDisplay/FirebaseInAppMessagingDisplay.framework/FirebaseInAppMessagingDisplay(FIRIAMDefaultDisplayImpl.o)
    ld: 2 duplicate symbols for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    note: Using new build system
    note: Planning build
    note: Constructing build description

Has somebody faced the same issue and was able to fix it?


Solution

  • I fixed it!

    1. comment firebase_in_app_messaging i.e (#firebase_in_app_messaging: ^0.1.1+3) inside pubspec.yaml

    2. Run flutter packages get

    3. Delete Podfile.lock inside the ios folder
    4. open up your terminal
    5. cd to the projects ios folder
    6. enter Vim Podfile
    7. press "i" for insert mode
    8. add these to lines to the bottom:
      pod 'Firebase', '6.15.0'
      pod 'FirebaseInAppMessaging', '0.16.0'
    9. Press "esc" on your keyboard to save
    10. enter pod install
    11. enter pod update Firebase/Core
    12. add uncomment firebase_in_app_messaging inside pubspec.yaml
    13. run flutter packages get