React Native iOS构建失败:script_phases.sh缺失Node.js二进制文件
React Native iOS构建失败:script_phases.sh找不到Node.js二进制文件
具体错误
/Users/admin2/Desktop/Projects/ios/Pods/../../node_modules/react-native/React/FBReactNativeSpec/../../scripts/react_native_pods_utils/script_phases.sh: line 83: /Users/.nvm/versions/node/v16.20.2/bin/node: No such file or directory
环境配置
- React Native版本:0.69.3
- Node.js版本:22.7.0
- Xcode版本:16.2
已尝试操作
- 在Xcode构建脚本中设置
export NODE_BINARY=$(which node)更新Node.js路径 - 重装依赖:
rm -rf node_modules yarn install cd ios pod install - 确保~/.zshrc配置加载正确的Node.js二进制路径
解决方案
1. 让Xcode加载用户shell环境变量
Xcode默认不会加载.zshrc这类用户配置文件,导致无法识别nvm管理的Node路径。打开Xcode项目的Build Phases,找到Bundle React Native code and images脚本,在开头添加:
source ~/.zshrc export NODE_BINARY=$(which node)
如果使用bash,替换为source ~/.bash_profile或source ~/.bashrc。
2. 直接指定Node绝对路径
终端执行which node得到当前Node的实际路径(比如/Users/admin2/.nvm/versions/node/v22.7.0/bin/node),然后在Xcode构建脚本中硬编码设置:
export NODE_BINARY=/Users/admin2/.nvm/versions/node/v22.7.0/bin/node
3. 修改script_phases.sh中的硬编码路径
错误提示里的路径是旧Node版本(v16.20.2)的硬编码值,直接修改脚本文件:
找到node_modules/react-native/scripts/react_native_pods_utils/script_phases.sh第83行,把旧路径替换成$(which node)动态获取,或者直接替换为当前Node的绝对路径。
4. 确保nvm配置正确加载
检查~/.zshrc中的nvm配置是否完整:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
重启终端后执行nvm use 22.7.0确认版本,再重新运行cd ios && pod install。
5. 改用系统全局Node(备选)
如果nvm路径问题无法解决,直接安装系统级Node:
brew install node@22 brew link node@22 --force
然后在Xcode脚本中设置NODE_BINARY=/usr/local/bin/node(根据实际安装路径调整)。
内容的提问来源于stack exchange,提问作者Muneeb Qureshi
相关产品推荐
相关产品推荐

