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

Xcode运行Ionic iOS项目遇FIRMessaging无delegate属性错误求助

解决Ionic+Cordova iOS项目中Property 'delegate' not found on object of type 'FIRMessaging'错误

我之前也碰到过一模一样的问题!这是因为新版本的Firebase Messaging(FCM)已经把delegate属性从FIRMessaging类迁移到Messaging类了,而你用的旧版cordova-plugin-fcm还在调用过时的API,导致Xcode编译报错。给你几个实用的解决办法:

方案1:替换为维护活跃的FCM插件(推荐)

旧版的cordova-plugin-fcm已经停止更新很久了,完全跟不上Firebase SDK的迭代。建议换成cordova-plugin-fcm-with-dependecy-updated,这个插件会自动适配最新的Firebase依赖:

  • 先移除旧插件和依赖:
    cordova plugin remove cordova-plugin-fcm
    npm uninstall @ionic-native/fcm
    
  • 安装新插件:
    cordova plugin add cordova-plugin-fcm-with-dependecy-updated
    npm install @ionic-native/fcm --save
    
  • 最后重新构建iOS项目:
    ionic cordova build ios
    

重新用Xcode打开项目,应该就能解决这个错误了。

方案2:手动修改旧插件源码(应急用)

如果你暂时不想换插件,可以手动修改cordova-plugin-fcm的iOS源码来适配新API:

  1. 找到项目目录下的plugins/cordova-plugin-fcm/src/ios/FCMPlugin.m文件
  2. 找到所有调用[FIRMessaging messaging].delegate的代码行,全部替换为[Messaging messaging].delegate
  3. 在文件顶部添加头文件导入:
    #import <FirebaseMessaging/Messaging.h>
    
  4. 保存修改后,重新执行ionic cordova build ios

方案3:锁定Firebase SDK版本

如果上面的方法都不行,可以尝试在Xcode的Podfile里指定兼容的Firebase SDK版本:

  1. 打开项目platforms/ios/Podfile文件
  2. 添加或修改Firebase相关的版本声明:
    pod 'Firebase/Core', '~> 6.0'
    pod 'Firebase/Messaging', '~> 6.0'
    
  3. 进入platforms/ios目录,执行pod update更新依赖
  4. 重新构建项目

内容的提问来源于stack exchange,提问作者user4422315

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:05:04