React Native iOS Xcode构建失败:Command PhaseScriptExecution错误排查求助
React Native iOS构建PhaseScriptExecution失败排查方案
1. 先定位具体报错细节
这个错误只是笼统提示脚本执行失败,必须看具体是哪个环节出问题:
- 在Xcode的错误面板里,点击错误行左侧的展开箭头,查看完整报错日志,重点确认是
Bundle React Native code and images还是其他自定义脚本抛出的具体错误(比如node路径不对、权限不足、语法报错等)。
2. 核对Node环境与路径
M1芯片下容易出现Xcode识别Node路径错误的问题:
- 打开Xcode的
Build Phases,找到Bundle React Native code and images脚本,在开头添加两行命令:
重新构建后查看日志输出的Node版本是否为18.17.0,路径是否正确。which node node -v - 如果路径不符,直接把脚本里的
node替换成你的实际Node路径(M1下Homebrew安装的Node一般在/opt/homebrew/bin/node),或者在Xcode Scheme的Run配置中添加环境变量PATH,值设为/opt/homebrew/bin:$PATH(根据你的Node路径调整)。
3. 修复脚本权限与Rosetta设置
- 终端进入项目根目录,执行命令给RN核心脚本添加可执行权限:
chmod +x node_modules/react-native/scripts/react-native-xcode.sh - 右键Xcode图标→显示简介,取消勾选“使用Rosetta打开”,重启Xcode后重试构建。
4. 深度清理缓存
除了你已做的操作,补充RN专属缓存清理:
- 终端执行:
npx react-native clean npm install cd ios && pod install --repo-update && cd .. - 然后在Xcode中按
Cmd+Shift+K清理构建文件夹,重启Xcode再尝试构建。
5. 调整Xcode构建设置
- 打开Xcode的
Build Settings,搜索ENABLE_USER_SCRIPT_SANDBOXING,将其设置为NO(Xcode15默认开启的沙箱机制可能限制脚本执行)。 - 检查
Build Phases里的Bundle React Native code and images脚本参数,比如entry-file是否指向正确的入口文件(一般是index.js或index.tsx),有没有拼写错误。
6. 排查第三方依赖兼容性
部分旧原生模块可能不兼容RN0.73.5或Xcode15.3:
- 暂时移除最近添加的第三方依赖,重新构建看是否能成功,逐步定位问题依赖。
- 查看依赖的GitHub仓库,确认是否有适配Xcode15和RN0.73的版本,及时更新。
内容的提问来源于stack exchange,提问作者Jasleen Kaur
相关产品推荐
相关产品推荐

