Flutter运行iOS模拟器时Xcode构建失败问题求助
问题成因
- Xcode组件加载异常:日志中两条watchOS相关扩展点缺失的报错,是Xcode跨版本升级后插件缓存损坏、IDEWatchSupportCore组件未正常加载导致,不会单独触发构建失败,但会伴随其他配置错误中断构建流程。
- CocoaPods依赖版本不兼容:Pods项目中
leveldb-library目标的IPHONEOS_DEPLOYMENT_TARGET被设置为8.0,而当前使用的Xcode版本支持的iOS模拟器最低部署版本为9.0,版本不匹配直接导致PhaseScriptExecution脚本阶段返回非零退出码,是本次构建失败的核心原因。 - 构建缓存过期:Flutter、Xcode、CocoaPods残留的旧构建临时文件、旧依赖配置,会导致构建系统读取到冲突参数,放大配置错误的影响。
修复步骤
按顺序执行以下操作,每步完成后可尝试执行flutter run验证,不需要全部走完:
- 清理全链路构建缓存
关闭所有打开的Xcode、模拟器窗口,在项目根目录依次执行以下命令:
flutter clean rm -rf ios/Pods ios/Podfile.lock rm -rf ~/Library/Developer/Xcode/DerivedData/*
- 统一Pods依赖的最低部署版本
打开项目ios目录下的Podfile文件,在文件末尾添加如下配置,强制所有第三方依赖的部署目标符合当前Xcode的版本要求:
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0' end end end
保存后回到项目根目录,依次执行依赖安装命令:
flutter pub get cd ios && pod install --repo-update && cd ..
- 修复Xcode扩展加载异常
如果完成前两步后仍出现watchOS扩展点缺失的报错,依次执行以下命令重置Xcode配置:
defaults delete com.apple.dt.Xcode sudo xcode-select --reset
执行完成后单独打开Xcode,等待系统提示完成组件安装、同意Xcode许可协议,组件加载完成后完全退出Xcode即可。
4. 校验项目配置
打开ios/Runner.xcworkspace(注意不要打开后缀为.xcodeproj的文件),选中Runner目标,在Build Settings tab下确认iOS Deployment Target设置为9.0及以上,和Podfile中的配置保持一致,可直接在Xcode中选中目标模拟器触发一次构建,构建成功后再回到终端执行flutter run即可。
内容的提问来源于stack exchange,提问作者Thura Khant Thein
相关产品推荐
相关产品推荐

