Flutter 3.0.5升级后iOS构建报错PhaseScriptExecution非零退出码
解决Flutter 3.0.5 iOS构建
PhaseScriptExecution failed with a nonzero exit code问题 一、优先处理空安全依赖冲突
- 用
flutter pub outdated命令扫描所有依赖,找出未支持空安全的包:flutter pub outdated - 把这些包升级到官方标记为
null-safe的最新稳定版本;如果部分包暂无空安全版本,可临时添加编译参数绕过(不推荐长期使用):
注:Flutter 3.0+默认强制空安全,长期使用该参数会埋下兼容性隐患,优先寻找替代包或等待原包更新。flutter run --no-sound-null-safety
二、修复Uint8List未找到错误
- 检查项目代码及依赖库,确保所有使用
Uint8List的地方都导入了dart:typed_data:import 'dart:typed_data'; - 通过
flutter run --verbose日志定位到报错的具体文件和行号,如果是第三方依赖的问题,升级该依赖到最新版;若仍未解决,可临时fork仓库修复后用本地依赖替代:dependencies: 问题包名称: path: ./本地修复后的包路径
三、执行完整的清理重建流程
- 按顺序执行以下命令,彻底清理旧构建缓存:
flutter clean cd ios pod deintegrate rm Podfile.lock rm -rf ~/Library/Caches/CocoaPods rm -rf Pods pod repo update pod install cd .. flutter build ios --release --verbose
四、调整iOS项目构建设置
- 打开Xcode,进入项目
Build Settings:- 将
Deployment Target设置为iOS 11.0及以上(Flutter 3.0.5最低兼容版本) - 检查
Run Script中的Flutter脚本路径,确保指向当前使用的Flutter 3.0.5 SDK路径,而非旧版本 - 关闭
Parallelize Build选项,避免并行构建导致脚本执行冲突
- 将
五、精准定位日志中的深层错误
- 从
flutter run --verbose输出中,找到PhaseScriptExecution失败对应的具体脚本,查看脚本执行时的详细报错信息(比如依赖编译失败、路径错误等) - 如果是CocoaPods版本兼容性问题,可降级到稳定版本:
sudo gem install cocoapods -v 1.11.3
内容的提问来源于stack exchange,提问作者Fabio Paccosi
相关产品推荐
相关产品推荐

