Flutter项目归档报PhaseScriptExecution非零退出码问题求助
解决Flutter iOS归档时PhaseScriptExecution非零退出码错误
核心排查与修复步骤
修复脚本权限
打开终端进入项目的ios目录,执行以下命令修复关键脚本的执行权限:chmod +x Pods/Target\ Support\ Files/Pods-<你的项目名称>/Pods-<你的项目名称>-frameworks.sh chmod +x Flutter/flutter_export_environment.sh脚本权限不足是触发该错误的高频原因。
清理缓存并重建依赖
- 执行Flutter全局清理:
flutter clean - 删除iOS本地依赖缓存:
rm -rf ios/Pods ios/Podfile.lock - 重新安装依赖:
cd ios && pod install --repo-update cd .. && flutter pub get
- 执行Flutter全局清理:
校验Build Phase脚本配置
- 打开Xcode进入项目
Build Phases面板 - 确认
[CP] Embed Pods Frameworks和[CP] Copy Pods Resources的脚本路径无空格、格式错误 - 检查Flutter相关
Run Script内容:- 构建阶段脚本应为:
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build - 归档阶段脚本应为:
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed_and_thin
- 构建阶段脚本应为:
- 打开Xcode进入项目
调整架构配置
- 在Xcode
Build Settings中,将Architectures设置为Standard Architectures (arm64) - 确保
Release模式下Build Active Architecture Only设为NO - 检查
Excluded Architectures,Release模式下不要包含arm64
- 在Xcode
排查依赖兼容性
- 核对
pubspec.yaml中所有依赖包版本,确认是否存在未适配iOS归档的包(如依赖私有框架、未兼容arm64的包) - 尝试移除近期新增的依赖,重新归档验证是否为特定包导致的问题
- 核对
补充验证操作
- 先执行
flutter build ios --release,若此步骤报错,直接根据终端错误信息定位问题 - 确认Xcode的Command Line Tools版本与当前Xcode版本匹配(路径:Xcode偏好设置→Locations→Command Line Tools)
内容的提问来源于stack exchange,提问作者David Buik
相关产品推荐
相关产品推荐

