Flutter 2.2.2执行pod install报错:Podfile后安装钩子处理失败
解决方案:Flutter pod install 部署目标不一致问题
问题核心
报错源于IPHONEOS_DEPLOYMENT_TARGET存在多值冲突,同时post-install钩子执行逻辑存在问题——你的Podfile虽尝试统一部署目标,但未覆盖主项目target、Extension等场景,且钩子内代码顺序有误。
具体修复步骤
1. 修正Podfile的post_install钩子
替换原post_install代码为以下内容,确保同时处理Pods依赖和主项目的所有target:
post_install do |installer| # 统一所有Pods依赖的部署目标 installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0' end flutter_additional_ios_build_settings(target) end # 统一主项目(Runner和Extension)的部署目标 installer.project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '14.0' end end end
原代码将
flutter_additional_ios_build_settings(target)放在build_configurations循环内,会导致重复执行引发异常,需移至循环外。
2. 手动统一Xcode项目构建设置
打开ios/Runner.xcworkspace:
- 选中Runner项目,在
Build Settings中搜索Deployment Target,确保Debug、Release、Profile三个配置的iOS Deployment Target均设为14.0 - 选中OneSignalNotificationServiceExtension target,重复上述操作,将其所有配置的部署目标也设为14.0
3. 彻底清理缓存并重新构建
执行以下命令:
# 清理Flutter缓存 flutter clean # 删除iOS端缓存文件 rm -rf ios/Pods ios/Podfile.lock ios/Runner.xcworkspace # 获取Flutter依赖 flutter pub get # 进入iOS目录执行pod安装 cd ios && pod install
4. 可选:调整CocoaPods版本
Flutter 2.2.2与CocoaPods 1.11.x存在兼容性风险,可尝试降级至1.10.2:
sudo gem uninstall cocoapods sudo gem install cocoapods -v 1.10.2
内容的提问来源于stack exchange,提问作者Fernando
相关产品推荐
相关产品推荐

