Flutter添加Firebase Auth包后iOS Pod依赖兼容错误求助
问题描述
添加firebase_auth包后,iOS端执行pod install时出现一系列依赖版本不兼容错误,具体错误如下:
1. Firebase/Auth版本冲突
[!] CocoaPods无法找到兼容版本的pod "Firebase/Auth":
在Podfile中:
Firebase/Auth
firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) 被解析为0.0.1,它依赖于 Firebase/Auth (~> 6.3)
2. GoogleUtilities/Environment版本冲突
[!] CocoaPods无法找到兼容版本的pod "GoogleUtilities/Environment":
在Podfile中:
firebase_auth (from.symlinks/plugins/google_mlkit_face_detection/ios) 被解析为0.0.1,它依赖于
Firebase/Auth (~> 6.3) 被解析为6.3.0,它依赖于
FirebaseAuth (~> 6.1.2) 被解析为6.1.2,它依赖于
GoogleUtilities/Environment (~> 6.2)
google_mlkit_face_detection (from `.symlinks/plugins/google_mlkit_face_detection/ios`) 被解析为0.4.0,它依赖于 GoogleMLKit/FaceDetection (~> 3.1.0) 被解析为3.1.0,它依赖于 MLKitFaceDetection (~> 2.1.0) 被解析为2.1.0,它依赖于 MLKitCommon (~> 7.0) 被解析为7.0.0,它依赖于 GoogleDataTransport (~> 9.0) 被解析为9.1.2,它依赖于 GoogleUtilities/Environment (~> 7.2)
3. MLKitCommon版本冲突
[!] CocoaPods无法找到兼容版本的pod "MLKitCommon":
在Podfile中:
google_mlkit_digital_ink_recognition (from.symlinks/plugins/google_mlkit_digital_ink_recognition/ios) 被解析为0.5.0,它依赖于
GoogleMLKit/DigitalInkRecognition (~> 3.1.0) 被解析为3.1.0,它依赖于
MLKitDigitalInkRecognition (~> 2.1.0) 被解析为2.1.0,它依赖于
MLKitMDD (~> 4.1) 被解析为4.2.0,它依赖于
MLKitCommon (~> 8.0)
google_mlkit_face_detection (from `.symlinks/plugins/google_mlkit_face_detection/ios`) 被解析为0.4.0,它依赖于 GoogleMLKit/FaceDetection (~> 3.1.0) 被解析为3.1.0,它依赖于 GoogleMLKit/MLKitCore (= 3.1.0) 被解析为3.1.0,它依赖于 MLKitCommon (~> 7.0.0) google_mlkit_face_detection (from `.symlinks/plugins/google_mlkit_face_detection/ios`) 被解析为0.4.0,它依赖于 GoogleMLKit/FaceDetection (~> 3.1.0) 被解析为3.1.0,它依赖于 MLKitFaceDetection (~> 2.1.0) 被解析为2.1.0,它依赖于 MLKitCommon (~> 7.0)
4. MLKitLanguageID版本冲突
[!] CocoaPods无法找到兼容版本的pod "MLKitLanguageID":
在Podfile中:
google_mlkit_language_id (from.symlinks/plugins/google_mlkit_language_id/ios) 被解析为0.4.0,它依赖于
GoogleMLKit/LanguageID (~> 3.1.0) 被解析为3.1.0,它依赖于
MLKitLanguageID (~> 3.1.0)
google_mlkit_smart_reply (from `.symlinks/plugins/google_mlkit_smart_reply/ios`) 被解析为0.4.0,它依赖于 GoogleMLKit/SmartReply (~> 3.1.0) 被解析为3.1.0,它依赖于 MLKitSmartReply (~> 2.1.0) 被解析为2.1.0,它依赖于 MLKitLanguageID (~> 3.1)
5. MLKitTextRecognitionCommon版本冲突
[!] CocoaPods无法找到兼容版本的pod "MLKitTextRecognitionCommon":
在Podfile中:
google_mlkit_text_recognition (from.symlinks/plugins/google_mlkit_text_recognition/ios) 被解析为0.4.0,它依赖于
GoogleMLKit/TextRecognition (~> 3.1.0) 被解析为3.1.0,它依赖于
MLKitTextRecognition (~> 1.4.0-beta5) 被解析为1.4.0-beta5,它依赖于
MLKitTextRecognitionCommon (= 1.0.0-beta5)
google_mlkit_text_recognition (from `.symlinks/plugins/google_mlkit_text_recognition/ios`) 被解析为0.4.0,它依赖于 GoogleMLKit/TextRecognitionJapanese (~> 3.1.0) 被解析为3.1.0,它依赖于 MLKitTextRecognitionJapanese (~> 1.0.0-beta5) 被解析为1.0.0-beta6,它依赖于 MLKitTextRecognitionCommon (= 1.0.0-beta6)
6. MLKitVision版本冲突
[!] CocoaPods无法找到兼容版本的pod "MLKitVision":
在Podfile中:
google_mlkit_commons (from.symlinks/plugins/google_mlkit_commons/ios) 被解析为0.2.0,它依赖于
MLKitVision
google_mlkit_face_detection (from `.symlinks/plugins/google_mlkit_face_detection/ios`) 被解析为0.4.0,它依赖于 GoogleMLKit/FaceDetection (~> 3.1.0) 被解析为3.1.0,它依赖于 MLKitFaceDetection (~> 2.1.0) 被解析为2.1.0,它依赖于 MLKitVision (~> 4.1) google_mlkit_object_detection (from `.symlinks/plugins/google_mlkit_object_detection/ios`) 被解析为0.5.0,它依赖于 GoogleMLKit/ObjectDetectionCustom (~> 3.1.0) 被解析为3.1.0,它依赖于 MLKitObjectDetectionCustom (~> 2.1.0) 被解析为2.1.0,它依赖于 MLKitObjectDetectionCommon (~> 4.1) 被解析为4.2.0,它依赖于 MLKitVision (~> 4.2)
7. MLKitXenoCommon版本冲突
[!] CocoaPods无法找到兼容版本的pod "MLKitXenoCommon":
在Podfile中:
google_mlkit_pose_detection (from.symlinks/plugins/google_mlkit_pose_detection/ios) 被解析为0.4.0,它依赖于
GoogleMLKit/PoseDetection (~> 3.1.0) 被解析为3.1.0,它依赖于
MLKitPoseDetection (~> 1.0.0-beta9) 被解析为1.0.0-beta10,它依赖于
MLKitXenoCommon (= 1.0.0-beta10)
google_mlkit_pose_detection (from `.symlinks/plugins/google_mlkit_pose_detection/ios`) 被解析为0.4.0,它依赖于 GoogleMLKit/PoseDetectionAccurate (~> 3.1.0) 被解析为3.1.0,它依赖于 MLKitPoseDetectionAccurate (~> 1.0.0-beta9) 被解析为1.0.0-beta9,它依赖于 MLKitXenoCommon (= 1.0.0-beta9)
解决步骤
1. 更新Flutter插件版本
- 打开项目根目录的
pubspec.yaml,将firebase_auth及所有Google MLKit相关插件(如google_mlkit_face_detection、google_mlkit_digital_ink_recognition等)升级到最新稳定版。 - 执行
flutter pub upgrade更新依赖,再执行flutter pub get拉取最新包。
2. 清理iOS端缓存
- 进入iOS目录:
cd ios - 删除Podfile.lock:
rm Podfile.lock - 删除Pods文件夹:
rm -rf Pods - 删除Flutter插件缓存:
rm -rf .symlinks - 清理CocoaPods全局缓存:
pod cache clean --all
3. 指定兼容依赖版本(升级后仍有问题时)
若部分插件无法升级到最新版,可在iOS目录的Podfile末尾添加强制统一版本的配置:
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) # 统一依赖版本示例,可根据实际冲突调整 target.build_configurations.each do |config| # 强制GoogleUtilities/Environment版本匹配MLKit需求 if target.name == 'firebase_auth' config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ '$(inherited)', 'GoogleUtilitiesEnvironment_VERSION=7.2.0' ] end # 强制MLKitCommon版本统一 if target.name.start_with?('google_mlkit') config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ '$(inherited)', 'MLKitCommon_VERSION=7.0.0' ] end end end end
4. 重新安装Pods
在iOS目录执行pod install --repo-update,确保CocoaPods更新本地仓库后再安装依赖。
5. 检查iOS部署目标
确保Podfile中指定的iOS部署目标版本与插件要求匹配,建议设置为12.0或更高:
platform :ios, '12.0'
内容的提问来源于stack exchange,提问作者akk

