所以我有一个使用Expo构建的应用程序,但随后弹出以获取ios和android文件夹,在android和ios上一切正常,我已经为android发布了它,但是在ios上,当我尝试归档项目时,它给了我一个错误{ {1}}我不知道是什么原因导致了此错误,我已经阅读了很多StackOverflow问题,尝试了很多事情,但是运气不好,这是我到目前为止所做的事情。
我尝试过:
One
,
做Command PhaseScriptExecution failed with nonzero exit code
好吧,以前用pod deintegrate
进行构建也不起作用,但是现在我去了Targets-> App name-> build phases-> bundle expo asset->并检查了“仅在安装时运行脚本”选项和构建开始工作,但存档仍然无法工作
除了上述错误,我还注意到xcode上的另一个错误
所以,请问有没有人知道为什么会发生这种情况,请
答案 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:
这是论坛上提出的实际问题: https://forums.expo.io/t/ios-bundle-assets-error-when-building-release-403/36616
此pull(修复)请求已合并到主请求中
-
将您的expo-cli更新为expo-cli@3.19.2或更高版本
npm install -g expo-cli
-
解决方案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 的回答,但我发现我不明白那个。