Flutter iOS CocoaPods找不到Firebase/Messaging兼容版本
Flutter iOS Firebase依赖冲突+ffi架构报错解决方案
1. 优先修复ffi架构不兼容问题
该问题是M系列芯片Mac常见的Ruby ffi组件编译架构不匹配问题,按顺序执行以下终端命令:
- 卸载本地所有已安装的ffi版本
gem uninstall ffi
执行过程中如果提示选择版本,直接输入all回车全量卸载。
- 以arm64e架构重新编译安装ffi
sudo arch -arm64e gem install ffi -- --enable-libffi-alloc
- 验证安装结果
file $(gem which ffi_c.bundle)
输出内容包含arm64e架构标识即为修复成功。
2. 解决Firebase SDK版本冲突
冲突核心原因是旧锁定文件残留版本记录+Notification扩展target未指定Firebase版本导致拉取不匹配版本,按以下步骤操作:
- 进入iOS工程目录,全量清理旧CocoaPods缓存与关联文件
cd ios rm -rf Pods Podfile.lock ~/Library/Caches/CocoaPods pod deintegrate
- 修改Podfile配置统一Firebase版本约束
- 在Podfile最顶部添加全局版本变量,和firebase_core、firebase_messaging要求的8.15.0版本对齐:
$FirebaseSDKVersion = '8.15.0'- 找到
ImageNotification扩展对应的target配置块,将未指定版本的pod 'Firebase/Messaging'修改为引用全局版本变量,避免单独拉取不一致版本:
不要在主Runner target或其他子target中单独声明Firebase相关依赖的版本号,统一使用全局变量约束,所有Flutter Firebase插件会自动适配该指定版本。target 'ImageNotification' do use_frameworks! :linkage => :static pod 'Firebase/Messaging', $FirebaseSDKVersion end - 重新拉取安装依赖
pod install --repo-update
如果仍提示版本冲突,追加执行指定组件更新命令:
pod update Firebase/Core Firebase/Messaging
3. 结果校验
安装完成后打开Podfile.lock文件,搜索Firebase/Messaging条目,确认主Runner target、ImageNotification扩展target对应的依赖版本均为8.15.0即为版本对齐成功。回到Flutter工程根目录执行flutter clean && flutter pub get后即可正常构建运行。
内容的提问来源于stack exchange,提问作者Honey Last
相关产品推荐
相关产品推荐

