Flutter M1芯片iOS端运行cloud_firestore版本依赖冲突求助
问题根因
当前的依赖冲突核心是firebase_admob v0.11.2版本过旧,依赖的Google Mobile Ads SDK版本过低,和其他Firebase系列插件依赖的Firebase Core、nanopb版本存在不兼容:
- 新版Firebase Firestore依赖
nanopb ~> 2.30908.0 - 旧版firebase_admob依赖
nanopb ~> 0.3,两个大版本完全不兼容
解决方案步骤
- 第一步:替换废弃的firebase_admob包
firebase_admob早已停止维护,官方已将广告相关能力迁移到google_mobile_ads包,将pubspec.yaml中firebase_admob: ^0.11.2的配置替换为google_mobile_ads: ^1.0.1,该版本和你当前其他Firebase依赖版本适配度最高。 - 第二步:清理旧的构建缓存与依赖
先执行以下命令清理历史缓存,避免旧依赖残留导致冲突:
flutter clean rm -rf ios/Pods rm ios/Podfile.lock
- 第三步:M1芯片专属适配操作
确认Podfile开头没有强制锁定nanopb、FirebaseCore版本的自定义配置,避免额外的版本限制冲突。 - 第四步:重新拉取依赖
回到项目根目录依次执行:
flutter pub get cd ios && arch -x86_64 pod install --repo-update
- 第五步:验证兼容性
重新运行项目到iOS模拟器即可,所有Firebase依赖版本已经对齐,不会再出现版本冲突问题。
临时兼容方案(不可长期使用)
如果短时间内无法重构广告相关代码替换旧包,可以在Podfile末尾添加以下代码强制锁定版本,优先兼容Firebase新依赖:
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) end # 强制锁定nanopb版本解决冲突 pod 'nanopb', '~> 2.30908.0' end
注意:此方案可能导致旧版firebase_admob出现未知运行异常,仅作为临时测试使用,长期使用还是建议优先替换为官方维护的新广告包。
内容的提问来源于stack exchange,提问作者Hridyansh Pareek
相关产品推荐
相关产品推荐

