Flutter项目更新Pods时遇GoogleDataTransport版本兼容问题求助
解决CocoaPods依赖冲突:GoogleDataTransport版本不兼容问题
问题详情
执行命令cd ios && pod update && pod install && cd -更新项目Pods时,触发以下依赖冲突错误:
[!] CocoaPods could not find compatible versions for pod "GoogleDataTransport": In Podfile: firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) was resolved to 15.1.0, which depends on Firebase/Messaging (= 11.0.0) was resolved to 11.0.0, which depends on FirebaseMessaging (~> 11.0.0) was resolved to 11.0.0, which depends on GoogleDataTransport (~> 10.0) mobile_scanner (from `.symlinks/plugins/mobile_scanner/ios`) was resolved to 5.2.2, which depends on GoogleMLKit/BarcodeScanning (~> 6.0.0) was resolved to 6.0.0, which depends on MLKitBarcodeScanning (~> 5.0.0) was resolved to 5.0.0, which depends on MLKitCommon (~> 11.0) was resolved to 11.0.0, which depends on GoogleDataTransport (< 10.0, >= 9.4.1)
已尝试以下操作但均无效,旧版本项目也出现相同问题:
- 执行
flutter clean - 删除
pubspec.lock和podfile.lock - 更新CocoaPods:
gem install cocoapods、pod repo update - 执行
flutter pub get
当前依赖版本
firebase_core: ^3.4.0 firebase_core_web: ^2.17.5 firebase_messaging: ^15.1.0 firebase_messaging_web: ^3.8.13 mobile_scanner: ^5.2.2
Flutter版本
Flutter 3.24.0 • channel stable • https://github.com/flutter/flutter.git Framework • revision 80c2e84975 (5 weeks ago) • 2024-07-30 23:06:49 +0700 Engine • revision b8800d88be Tools • Dart 3.5.0 • DevTools 2.37.2
解决方案
方法1:调整依赖版本(推荐)
冲突根源是两个插件对GoogleDataTransport的版本要求互斥:
firebase_messaging: ^15.1.0需要GoogleDataTransport ~>10.0mobile_scanner: ^5.2.2需要GoogleDataTransport <10.0
可以二选一调整版本:
- 升级mobile_scanner:将
mobile_scanner版本提升至≥6.0.0(该版本适配MLKit 7.x,支持GoogleDataTransport 10.x),修改pubspec.yaml后执行flutter pub get,再重新安装Pods。 - 降级firebase_messaging:将
firebase_messaging版本降至^14.7.0(该版本依赖Firebase 10.x,对应GoogleDataTransport 9.x),修改后执行flutter pub get再安装Pods。
方法2:强制指定依赖版本(不推荐,可能引发潜在兼容问题)
在ios/Podfile中添加版本覆盖逻辑,强制使用符合双方要求的GoogleDataTransport版本(比如9.4.1):
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) end # 强制设置GoogleDataTransport版本 installer.pod_targets.each do |target| if target.name == 'GoogleDataTransport' target.version = '9.4.1' end end end
修改后执行cd ios && pod install && cd -。
方法3:彻底清除缓存后重试
执行以下命令清理所有相关缓存,再重新安装:
rm -rf ~/Library/Caches/CocoaPods rm -rf ios/Pods rm ios/Podfile.lock flutter clean flutter pub get cd ios && pod repo update && pod install && cd -
内容的提问来源于stack exchange,提问作者Heropolis Da2ny
相关产品推荐
相关产品推荐

