Flutter引入firebase_messaging后报agora_rtc_engine未找到错误如何解决
问题根因
该报错属于iOS端Pod依赖冲突问题,新增firebase_messaging依赖后修改了Pod全局编译规则,覆盖了agora_rtc_engine的依赖生效配置,此前agora功能正常说明原生代码本身无问题,冲突点集中在Pod依赖配置和版本适配层面。
解决步骤
- 清理本地缓存与旧依赖
执行以下命令清理全部缓存和无效的Pod文件:flutter clean && rm -rf ios/Pods ios/Podfile.lock ios/Runner.xcworkspace
执行完成后运行flutter pub get重新拉取Dart侧依赖。 - 修正Podfile配置
打开项目ios目录下的Podfile,调整两处配置:- 将顶部的
platform :ios, 'xx.0'版本修改为13.0或更高,agora_rtc_engine 4.x+版本最低要求iOS 12.0,最新版firebase_messaging最低要求iOS 13.0,二者版本需要统一 - 如果你的Podfile中配置了全局静态编译规则
use_frameworks! :linkage => :static,需要在target 'Runner'块内单独给agora_rtc_engine添加模块化头文件配置,示例如下:
target 'Runner' do use_frameworks! :linkage => :static # 新增下方agora配置行 pod 'agora_rtc_engine', :path => '.symlinks/plugins/agora_rtc_engine/ios', :modular_headers => true # 其余原有配置保持不变 end - 将顶部的
- 重新安装Pod依赖
进入ios目录执行以下命令拉取最新的原生依赖:pod install --repo-update
如果执行提示权限不足,可在命令前加sudo执行。 - Xcode配置校验
打开Runner.xcworkspace文件(请勿打开后缀为.xcodeproj的文件,会导致依赖不生效),检查两处配置:- 进入Runner项目的Build Settings面板,搜索
iOS Deployment Target,确认所有Target的版本和Podfile中设置的iOS版本完全一致 - 搜索
Other Linker Flags,确认配置项中存在-ObjC,如果没有则手动添加
- 进入Runner项目的Build Settings面板,搜索
- 编译验证
回到项目根目录执行flutter run重新编译项目,依赖找不到的问题即可解决。
特殊情况兼容
如果上述步骤执行后仍有报错,将agora_rtc_engine和firebase_messaging都升级到对应大版本的最新稳定版,避免两个插件的原生依赖版本不兼容。
内容的提问来源于stack exchange,提问作者Damini Bharat Jadhav
相关产品推荐
相关产品推荐

