升级Firebase Pods后遇'Messaging无remoteMessageDelegate成员'错误求解决
解决Firebase Pods升级后
Messaging无remoteMessageDelegate成员的问题 嘿,这个问题我太熟了——这是Firebase Messaging在新版本里的API变更导致的!大概从Firebase 10.x系列版本开始,官方把remoteMessageDelegate这个属性给移除了,换成了更简洁的delegate属性来统一代理逻辑。
你只需要做两个小调整就能搞定:
- 把代码里的
Messaging.messaging().remoteMessageDelegate替换成Messaging.messaging().delegate - 确保你的类已经正确遵循了
MessagingDelegate协议(如果还没添加的话,要在类声明或者扩展里补上)
修改后的代码如下:
//notification 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 as? UNUserNotificationCenterDelegate // For iOS 10 data message (sent via FCM) Messaging.messaging().delegate = self as? MessagingDelegate }
另外,别忘了在你的类里添加MessagingDelegate的遵循声明,比如:
// 直接在类声明里添加协议 class YourViewController: UIViewController, UNUserNotificationCenterDelegate, MessagingDelegate { // 你的类逻辑代码... } // 或者用扩展的方式实现代理方法 extension YourViewController: MessagingDelegate { // 实现必要的代理方法,比如处理收到的消息 func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) { // 这里写你的消息处理逻辑 } }
这样修改之后,那个编译错误应该就彻底消失啦!
内容的提问来源于stack exchange,提问作者felon
相关产品推荐
相关产品推荐

