我正在开发一个 React Native 项目,在 Xcode 中构建该项目时工作正常,将应用程序发布到应用程序商店,但存档失败并出现以下错误:
Command PhaseScriptExecution failed with a nonzero exit code
此错误发生在“运行自定义 shell 脚本‘捆绑 React Native 代码和图像’”阶段。
/opt/homebrew/bin/node
(来自which node
的输出)这是当前处于“捆绑 React Native 代码和图像”阶段的脚本:
set -e
WITH_ENVIRONMENT="$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh"
REACT_NATIVE_XCODE="$REACT_NATIVE_PATH/scripts/react-native-xcode.sh"
/bin/sh -c "$WITH_ENVIRONMENT $REACT_NATIVE_XCODE"
检查
with-environment.sh
中是否存在react-native-xcode.sh
和node_modules/react-native/scripts
– scripts
文件夹丢失。
使用
node_modules
和 npm install
重新安装 yarn install
– 没有变化。
验证回显时
$REACT_NATIVE_PATH
为空。
更新了脚本以直接使用:
export NODE_BINARY=/opt/homebrew/bin/node
../node_modules/react-native/scripts/react-native-xcode.sh
– 这并没有解决问题。
清理了 Xcode 中的构建文件夹并删除了
DerivedData
。
跑到
pod install --repo-update
目录下ios
。
scripts
中缺少node_modules/react-native
文件夹的问题吗?任何帮助或指示将不胜感激!
我尝试了 GPT 建议的多种解决方案,但遗憾的是没有任何解决方案:(
很多其他 stackoverflow 答案都建议进行此修复,但默认情况下这已经在我的代码中修复了:
更新所有生成的 ...-frameworks.sh 文件以将 -f 标志添加到对 readlink 的调用中。换句话说,需要更换:
source="$(readlink "${source}")"
与
source="$(readlink -f "${source}")"