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

Flutter iOS集成Firebase SDK 10+依赖安装失败及构建问题求助

解决方案:Flutter Firebase iOS 依赖版本冲突问题

问题分析

从报错日志来看,存在两个核心版本冲突:

  1. GTMSessionFetcher/Core 版本不兼容:Firebase Auth 依赖 >=2.1 的版本,但 google_sign_in_ios 和 mobile_scanner 依赖的是 >=1.1/>=1.5 的旧版本,版本范围无法匹配。
  2. 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.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 17:56:35