React Native项目在Xcode运行时出现ReactCodegen执行错误求助
ReactCodegen: Command PhaseScriptExecution failed with nonzero exit code (React Native)
问题描述
我通过以下命令创建了一个标准React Native应用:
npx react-native init sampleApp && cd ios && pod install
在Xcode中运行应用时,遇到错误:
ReactCodegen: Command PhaseScriptExecution failed with a nonzero exit code
我已经尝试了以下所有步骤,但问题仍未解决:
- 清理iOS项目相关文件与依赖:
cd ios rm .xcode.env.local rm .xcode.env pod deintegrate rm -rf ./build rm Podfile.lock cd .. rm -rf ./node_modules npm install cd ios pod install - 在Xcode中执行:
Product -> Clear all issuesProduct -> Clean build folder
- 环境相关操作:
# 已安装Ruby 3.3.6 ruby --version # 输出:ruby 3.3.6 (2024-11-05 revision 75015d4c1f) [x86_64-darwin23] sudo gem install cocoapods pod setup pod cache clean --all xcode-select --install npx react-native start --reset-cache npm install
可行解决方法
1. 核对版本兼容性
确保Xcode版本与当前React Native版本匹配。例如React Native 0.75+需要Xcode 15.0及以上版本,可查看项目package.json里的RN版本,对照官方兼容要求确认。同时检查Node.js版本,RN 0.75+建议使用18.x或20.x版本,版本不符则切换后重新安装依赖。
2. 切换Ruby版本
高版本Ruby(如3.3.x)可能与ReactCodegen脚本存在兼容性问题,用rbenv或rvm切换到2.7.x或3.1.x版本后重新执行pod install:
# 以rbenv为例,先安装对应版本 rbenv install 3.1.4 rbenv local 3.1.4 cd ios pod install
3. 修复脚本权限
给ReactCodegen的生成脚本添加可执行权限:
chmod +x node_modules/react-native/scripts/generate-specs.sh
之后回到Xcode重新构建项目。
4. 调整Xcode构建设置
- 打开Xcode的
File -> Project Settings,点击Build System下的Advanced,选择Legacy Build System。 - 或在Scheme设置中关闭
Parallelize Build选项,再尝试构建。
5. 手动执行脚本排查细节
手动运行ReactCodegen的生成脚本,查看具体错误信息:
cd ios ../node_modules/react-native/scripts/generate-specs.sh
根据输出的报错内容定位问题,比如依赖缺失、路径错误等。
内容的提问来源于stack exchange,提问作者Taha Halabi
相关产品推荐
相关产品推荐

