Xcode编译Flutter iOS项目报错找不到xcode_backend.sh脚本如何解决
Flutter iOS编译Xcode报错xcode_backend.sh不存在的解决办法
报错核心原因
你遇到的报错如下:
/bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory Command PhaseScriptExecution failed with a nonzero exit code
该报错本质是Xcode构建阶段的运行脚本没有读取到正确的Flutter SDK路径,无法定位到对应的脚本文件。Android Studio可以正常编译是因为IDE启动时会自动加载本地Flutter环境变量,Xcode默认没有关联对应的路径配置。
解决步骤
- 第一步:确认本地Flutter环境正常
打开终端执行flutter doctor,检查输出中iOS相关配置无异常,记录下本地Flutter SDK的安装绝对路径(示例路径:/Users/用户名/development/flutter)。 - 第二步:修正Xcode构建阶段的脚本路径
打开iOS项目下的Runner.xcworkspace,选中左侧Runner目标,切换到「Build Phases」标签页,找到「Run Script」模块,将原有脚本替换为以下内容:
如果"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed$FLUTTER_ROOT变量不生效,可以直接替换为你刚才记录的Flutter SDK绝对路径,示例:"/Users/张三/development/flutter/packages/flutter_tools/bin/xcode_backend.sh" build "/Users/张三/development/flutter/packages/flutter_tools/bin/xcode_backend.sh" embed - 第三步:配置Flutter全局路径(可选)
打开Xcode偏好设置 -> 「Locations」 -> 「Custom Paths」,添加一条配置:- 名称:FLUTTER_ROOT
- 路径:你的Flutter SDK绝对路径
- 显示名称:可留空或填Flutter SDK路径
- 第四步:清理缓存重新构建
回到项目根目录终端依次执行以下命令:
回到Xcode按flutter clean flutter pub get cd ios && pod install --repo-updateCommand + Shift + K清空构建缓存,之后重新编译即可。 - 备选修复方案
如果以上操作仍未解决,可在项目根目录删除ios文件夹,执行flutter create .重新生成iOS项目配置,之后重新配置签名等信息再编译即可。
内容的提问来源于stack exchange,提问作者Gaurav Patil
相关产品推荐
相关产品推荐

