简体   繁体   中英

iOS10, Swift 3, and FCM delegate error

I'm getting error:

"Value of type FIRMessaging has no member 'remoteMessageDelegate'" on FIRMessaging.messaging().remoteMessageDelegate = self

I get this snippet code from FCM setup guide:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    if #available(iOS 10.0, *) {
        let authOptions : UNAuthorizationOptions = [.alert, .badge, .sound]
        UNUserNotificationCenter.current().requestAuthorization(
            options: authOptions,
            completionHandler: {_,_ in })

        // For iOS 10 display notification (sent via APNS)
        UNUserNotificationCenter.current().delegate = self
        // For iOS 10 data message (sent via FCM)
        FIRMessaging.messaging().remoteMessageDelegate = self //Get error on this line

    } else {
        let settings: UIUserNotificationSettings =
            UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
        application.registerUserNotificationSettings(settings)
        application.registerForRemoteNotifications()
    }

I had the same problem. It seems that Google documentation is out to date, I took a look Cocoapods Firebase Messaging page and I solved updating the cocoapods repo doing inside the Terminal:

pod repo update

And then replacing the following lines in my Podfile:

pod 'Firebase/Core'
pod 'Firebase/Messaging'

With:

 pod 'Firebase', '~> 3.7'
 pod 'FirebaseMessaging', '~> 1.2'
 pod 'FirebaseAnalytics', '~> 3.3'

This will download FirebaseMessaging 1.2 instead of 1.1

在控制台中运行:

pod update

You need to update your cocoapod version

try updating version of cocoapod to latest from terminal app

sudo gem update

After updating to latest cocoapod update your pods

pod update

If you dont want to update all pods you can just update those Firebase pods

As of CocoaPods 1.0, 'pod repo udpate' does not happen on 'pod install' by default

pod update 'Firebase/Core'
pod update 'Firebase/Database'
pod update 'Firebase/Auth'
pod update 'Firebase/Messaging'

So you need to remove lines from podfile:

pod 'Firebase/Core'
pod 'Firebase/Messaging'

Then install pod, add these lines again and install again. This solved it for me.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM