归档时“命令PhaseScriptExecution失败,退出代码非零”

时间:2020-06-07 12:16:08

标签: react-native expo xcode11

所以我有一个使用Expo构建的应用程序,但随后弹出以获取ios和android文件夹,在android和ios上一切正常,我已经为android发布了它,但是在ios上,当我尝试归档项目时,它给了我一个错误{ {1}}我不知道是什么原因导致了此错误,我已经阅读了很多StackOverflow问题,尝试了很多事情,但是运气不好,这是我到目前为止所做的事情。

我尝试过:

  • 删除窗格锁定文件,删除窗格文件夹,执行One, 做Command PhaseScriptExecution failed with nonzero exit code
    • 锁定和解锁keychainAccess中的登录名
    • 在xcode中清理构建文件夹
    • 重新启动笔记本电脑和xcode
    • 从新的构建系统更改为旧的构建系统
    • 删除DerivedData文件夹并清理Xcode
  • 升级cocopods并再次进行pod安装

好吧,以前用pod deintegrate进行构建也不起作用,但是现在我去了Targets-> App name-> build phases-> bundle expo asset->并检查了“仅在安装时运行脚本”选项和构建开始工作,但存档仍然无法工作

除了上述错误,我还注意到xcode上的另一个错误

enter image description here

所以,请问有没有人知道为什么会发生这种情况,请

error screenshot

5 个答案:

答案 0 :(得分:3)

一个可能的原因可能是 Xcode 使用的是过时版本的 Node(就我而言,这是因为我使用 nvm 来管理我的 Node 版本,但 Xcode 使用的是我通过 HomeBrew 安装了很长时间的旧版本 Node前一段时间)。

默认情况下,Xcode 将使用位于 /usr/local/bin/node 的 Node 二进制文件。通过运行检查其版本:

/usr/local/bin/node -v
node -v

如果第一个命令输出旧版本的 Node,只需将其删除并替换为新版本的符号链接:

rm -rf /usr/local/bin/node
ln -s $(which node) /usr/local/bin/node

答案 1 :(得分:1)

解决方案1:

这是由于Bare Expo Bundle Assets

这是论坛上提出的实际问题: https://forums.expo.io/t/ios-bundle-assets-error-when-building-release-403/36616

pull(修复)请求已合并到主请求中

-

Solution:

将您的expo-cli更新为expo-cli@3.19.2或更高版本

npm install -g expo-cli

-

注意:解决方案1是此问题的答案

解决方案2:

在终端上打开项目目录,然后运行此命令并再次存档

react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ./ios/main.jsbundle

解决方案3:

转到

Keychain Access-> Right-click on login-> Lock & unlock again -> Clean Xcode project-> Make build again

答案 2 :(得分:1)

对我来说,这个问题是我将项目放在名称中带有空格的目录中。 FBReactNativeSpec 构建的一个中间脚本在没有转义空格的情况下引用路径,所以它失败了。

答案 3 :(得分:0)

当我尝试初始化一个新的 RN 项目时,我遇到了与 John 所说的相同的问题。但结果我不得不在没有空格的路径中重新创建项目。

答案 4 :(得分:0)

我的实际错误来自 PhaseScriptExecution 部分的正上方,这是由于 Error: cannot find the node binary. Try setting the NODE_BINARY variable in the...

当 Xcode 在 /usr/local/bin/node 处寻找 Node 时,它​​实际上并不存在,因为 nvm 使用了更具体的动态路径。

解决方法很简单。根据您的节点路径设置系统链接。然后再次尝试您的构建。在终端中运行:

ln -s $(which node) /usr/local/bin/node

这个答案来自这个 SO 答案:React Native ios build : Can't find node 但在那里的其他答案和评论中也提到了。 这也类似于@ashwin-m 的回答,但我发现我不明白那个。