You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:03:42