Flutter项目Xcode 11.1构建失败:Command PhaseScriptExecution错误求助
Fix: Command PhaseScriptExecution Failed with Nonzero Exit Code in Xcode 11.1 for Flutter Projects
我之前也碰到过一模一样的问题!根源在于Xcode 11.1对二进制架构的校验更严格,而你的Flutter构建输出的App.framework只包含了arm64(真机架构),但iOS模拟器需要x86_64架构,导致脚本检查失败。下面是亲测有效的解决步骤:
1. 升级Flutter到适配版本
老版本Flutter可能对Xcode 11的架构处理有bug,先确保你的Flutter是最新稳定版:
flutter upgrade
2. 彻底清理构建缓存
缓存残留很容易导致架构不匹配,先清理Flutter侧的缓存:
flutter clean
然后打开Xcode,执行:
- 菜单栏选择
Product > Clean Build Folder(快捷键Cmd+Shift+K) - 手动删除DerivedData目录(路径就是错误信息里的
/Users/derrickxiang/Library/Developer/Xcode/DerivedData/Runner-ddqqlsawcqbvcocyrpnrjfejjuha)
3. 调整Xcode项目的架构设置
打开ios/Runner.xcworkspace,选中Runner target,切换到Build Settings标签:
- 搜索
Architectures,确保Architectures设置为Standard Architectures (arm64, x86_64) - 搜索
Valid Architectures,确认包含arm64, x86_64两个选项 - 搜索
Build Active Architecture Only,设置Debug模式为YES,Release模式为NO
4. 修改Podfile强制统一架构
打开ios/Podfile,在文件末尾添加以下post_install脚本,确保所有依赖都编译支持所需架构:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ARCHS'] = 'arm64 x86_64' config.build_settings['VALID_ARCHS'] = 'arm64 x86_64' end end end
然后重新安装Pods:
cd ios && pod install && cd ..
5. 强制针对模拟器编译
最后,直接用Flutter命令强制编译模拟器版本,确保生成x86_64架构的二进制:
flutter build ios --debug --simulator
完成这些步骤后,再回到Xcode重新构建,应该就能顺利通过了。
内容的提问来源于stack exchange,提问作者Derrick.X
相关产品推荐
相关产品推荐

