title: firebase_messaging fails to build for iOS but works for Android
body: <p>I'm looking to add the <code>firebase_messaging 7.0.3</code> package to add Push Notifications to my project. I've configured it for Android and it's working like a charm. Getting the Registration Token and can push notifications to my emulator and phone no problem.</p>
  <p>Now, when I run the iOS build it fails on finding protocol declaration for 'FIRMessagingDelegate'. From what I understand the <code>FIR-</code> prefix has been removed some time ago and should now just be called MessagingDelegate.</p>
  <p>I've ran both pod install and update and tried cleaning flutter.</p>
  <pre><code>flutter clean 
  pod install 
  pod update 
  </code></pre>
  <p>Also, tried to add <code>Firebase-Messaging</code> to my Podfile version less and trying older versions to no avail.</p>
  <p>I followed all the steps in the iOS configuration at: <a href="https://pub.dev/packages/firebase_messaging" rel="nofollow noreferrer">https://pub.dev/packages/firebase_messaging</a> and tried it with method swizzling and without. I've ran out of options to try, perhaps some dependencies are not using the right version of firebase someplace but I'm not really sure how to check for those.</p>
  <p>Here's the Stack Trace from the build:</p>
  <pre><code>Launching lib/main.dart on iPhone 12 Pro Max in debug mode...
  Running pod install...
  Running Xcode build...
  Xcode build done.                                           56.0s
  Failed to build iOS app
  Error output from Xcode build:
  ↳
      2021-02-08 16:55:26.766 xcodebuild[37625:1544731]  DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/DVTiOSFrameworks/DVTiOSFrameworks-17705/DTDeviceKitBase/DTDKRemoteDeviceData.m:371
      Details:  (null) deviceType from 00008030-000E78DC3C81802E was NULL when -platform called.
      Object:   &lt;DTDKMobileDeviceToken: 0x7fdc6daa9710&gt;
      Method:   -platform
      Thread:   &lt;NSThread: 0x7fdc6d00f3d0&gt;{number = 2, name = (null)}
      Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide.
      ** BUILD FAILED **
  
  
  Xcode's output:
  ↳
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:14:43: error: cannot find protocol declaration for 'FIRMessagingDelegate'
      @interface FLTFirebaseMessagingPlugin () &lt;FIRMessagingDelegate&gt;
                                                ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:190:43: error: expected a type
      - (void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage {
                                                ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:284:28: error: expected a type
      - (void)messaging:(nonnull FIRMessaging *)messaging
                                 ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:289:20: error: expected a type
      - (void)messaging:(FIRMessaging *)messaging
                         ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:290:24: error: expected a type
          didReceiveMessage:(FIRMessagingRemoteMessage *)remoteMessage {
                             ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:55:6: error: use of undeclared identifier 'FIRMessaging'
          [FIRMessaging messaging].delegate = self;
           ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:136:6: error: use of undeclared identifier 'FIRMessaging'
          [FIRMessaging messaging].shouldEstablishDirectChannel = true;
           ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:144:7: error: use of undeclared identifier 'FIRMessaging'
          [[FIRMessaging messaging] subscribeToTopic:topic
            ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:150:7: error: use of undeclared identifier 'FIRMessaging'
          [[FIRMessaging messaging] unsubscribeFromTopic:topic
            ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:155:21: warning: 'FIRInstanceID' is deprecated: FIRInstanceID is deprecated, please use FIRInstallations for installation identifier handling and use FIRMessaging for FCM registration token handling. [-Wdeprecated-declarations]
          [[FIRInstanceID instanceID]
                          ^
      In module 'FirebaseInstanceID' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
      /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:190:1: note: 'FIRInstanceID' has been explicitly marked deprecated here
      __deprecated_msg(&quot;FIRInstanceID is deprecated, please use FIRInstallations for installation &quot;
      ^
      In module 'UIKit' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
      In module 'Foundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
      In module 'CoreFoundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6:
      In module 'Darwin' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:16:
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro '__deprecated_msg'
              #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                            ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:156:33: warning: 'FIRInstanceIDResult' is deprecated: FIRInstanceIDResult is deprecated, please use FIRInstallations for app instance identifier handling and use FIRMessaging for FCM registration token handling. [-Wdeprecated-declarations]
              instanceIDWithHandler:^(FIRInstanceIDResult *_Nullable instanceIDResult,
                                      ^
      In module 'FirebaseInstanceID' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
      /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:153:1: note: 'FIRInstanceIDResult' has been explicitly marked deprecated here
      __deprecated_msg(&quot;FIRInstanceIDResult is deprecated, please use FIRInstallations &quot;
      ^
      In module 'UIKit' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
      In module 'Foundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
      In module 'CoreFoundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6:
      In module 'Darwin' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:16:
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro '__deprecated_msg'
              #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                            ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:156:9: warning: 'instanceIDWithHandler:' is deprecated: Use `Installations.installationID(completion:)` to get the app instance identifier instead. Use `Messaging.token(completion:)` to get FCM registration token instead. [-Wdeprecated-declarations]
              instanceIDWithHandler:^(FIRInstanceIDResult *_Nullable instanceIDResult,
              ^
      In module 'FirebaseInstanceID' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
      /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:215:5: note: 'instanceIDWithHandler:' has been explicitly marked deprecated here
          __deprecated_msg(&quot;Use `Installations.installationID(completion:)` to get the app instance &quot;
          ^
      In module 'UIKit' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
      In module 'Foundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
      In module 'CoreFoundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6:
      In module 'Darwin' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:16:
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro '__deprecated_msg'
              #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                            ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:166:21: warning: 'FIRInstanceID' is deprecated: FIRInstanceID is deprecated, please use FIRInstallations for installation identifier handling and use FIRMessaging for FCM registration token handling. [-Wdeprecated-declarations]
          [[FIRInstanceID instanceID] deleteIDWithHandler:^void(NSError *_Nullable error) {
                          ^
      In module 'FirebaseInstanceID' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
      /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:190:1: note: 'FIRInstanceID' has been explicitly marked deprecated here
      __deprecated_msg(&quot;FIRInstanceID is deprecated, please use FIRInstallations for installation &quot;
      ^
      In module 'UIKit' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
      In module 'Foundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
      In module 'CoreFoundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6:
      In module 'Darwin' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:16:
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro '__deprecated_msg'
              #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                            ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:166:33: warning: 'deleteIDWithHandler:' is deprecated: Use `Installations.delete(completion:)` instead. Also check `Messaging.deleteData(completion:)`if you want to delete FCM registration token. [-Wdeprecated-declarations]
          [[FIRInstanceID instanceID] deleteIDWithHandler:^void(NSError *_Nullable error) {
                                      ^
      In module 'FirebaseInstanceID' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Headers/Public/Firebase/Firebase.h:72:
      /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:321:33: note: 'deleteIDWithHandler:' has been explicitly marked deprecated here
                                      __deprecated_msg(&quot;Use `Installations.delete(completion:)` instead. &quot;
                                      ^
      In module 'UIKit' imported from /Users/peterpoliwoda/Development/git/bd4qol_mobile_app/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
      In module 'Foundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
      In module 'CoreFoundation' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6:
      In module 'Darwin' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:16:
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.4.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro '__deprecated_msg'
              #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                            ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:176:20: error: use of undeclared identifier 'FIRMessaging'
          BOOL value = [[FIRMessaging messaging] isAutoInitEnabled];
                         ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:180:6: error: use of undeclared identifier 'FIRMessaging'
          [FIRMessaging messaging].autoInitEnabled = value.boolValue;
           ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:191:52: error: property 'appData' not found on object of type '__strong id'
        [self didReceiveRemoteNotification:remoteMessage.appData];
                                                         ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:204:7: error: use of undeclared identifier 'FIRMessaging'
          [[FIRMessaging messaging] appDidReceiveMessage:userInfo];
            ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:263:5: error: use of undeclared identifier 'FIRMessaging'
        [[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeSandbox];
          ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:268:48: error: use of undeclared identifier 'FIRMessaging'
        [_channel invokeMethod:@&quot;onToken&quot; arguments:[FIRMessaging messaging].FCMToken];
                                                     ^
      /Users/peterpoliwoda/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:291:63: error: property 'appData' not found on object of type '__strong id'
        [_channel invokeMethod:@&quot;onMessage&quot; arguments:remoteMessage.appData];
                                                                    ^
      5 warnings and 16 errors generated.
  </code></pre>
  <pre><code>
  $ flutter --version
  
  Flutter 1.22.6 • channel stable • https://github.com/flutter/flutter.git
  Framework • revision 9b2d32b605 (3 weeks ago) • 2021-01-22 14:36:39 -0800
  Engine • revision 2f0af37152
  Tools • Dart 2.10.5
  
  </code></pre>