Flutter iOS集成Firebase SDK 10+依赖安装失败及构建问题求助
解决方案:Flutter Firebase iOS 依赖版本冲突问题
问题分析
从报错日志来看,存在两个核心版本冲突:
- GTMSessionFetcher/Core 版本不兼容:Firebase Auth 依赖
>=2.1的版本,但google_sign_in_ios和mobile_scanner依赖的是>=1.1/>=1.5的旧版本,版本范围无法匹配。 - nanopb 版本范围冲突:
cloud_firestore要求<2.30910.0,而firebase_crashlytics允许<2.30911.0,虽有重叠但 CocoaPods 解析逻辑未匹配到兼容版本。
解决步骤
1. 统一 Firebase Flutter 插件版本
确保所有 Firebase 插件使用同一系列兼容版本,避免混合新旧版本导致 iOS 端 SDK 版本混乱。修改 pubspec.yaml 中的 Firebase 依赖为:
cloud_firestore: ^4.17.0 cloud_functions: ^4.8.0 firebase_auth: ^4.19.0 firebase_core: ^2.29.0 firebase_crashlytics: ^3.6.0 firebase_messaging: ^14.9.0 firebase_performance: ^0.10.0+1 firebase_storage: ^11.8.0
以上版本均适配 Firebase iOS SDK 10.24.x 系列,可解决 nanopb 的范围冲突。
2. 升级冲突的第三方插件
旧版 google_sign_in_ios 和 mobile_scanner 依赖的库版本过低,升级到最新兼容版本:
google_sign_in_ios: ^5.7.0 mobile_scanner: ^5.0.0
新版本已适配更高版本的 GTMSessionFetcher,消除版本冲突。
3. 彻底清理缓存后重新安装
执行以下命令清除所有缓存,避免旧依赖残留:
# 清理 Flutter 缓存 flutter clean rm -rf pubspec.lock # 进入 iOS 目录清理 CocoaPods 缓存 cd ios rm -rf Podfile.lock Pods .symlinks Flutter/Flutter.podspec pod deintegrate pod repo update # 重新安装依赖 pod install
4. 强制锁定冲突 Pod 版本(备用方案)
若上述步骤无效,可在 iOS 目录的 Podfile 末尾添加版本锁定规则:
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) end # 锁定 nanopb 到同时满足两个依赖的版本 pod 'nanopb', '2.30909.0' # 锁定 GTMSessionFetcher 到兼容版本 pod 'GTMSessionFetcher/Core', '2.1.0' end
添加后重新执行 pod install。
5. 不建议降级 Firebase SDK
降级到 9.6.0 会引发大量构建错误,旧版 SDK 与新版 Flutter 插件、iOS 系统兼容性极差,应避免采用此方案。
内容的提问来源于stack exchange,提问作者Milos N.
相关产品推荐
相关产品推荐

