xcode React Native- FBReactNativeSpec命令阶段ScriptExecution失败,返回非零退出代码

eqoofvh9  于 2022-11-17  发布在  React
关注(0)|答案(7)|浏览(162)

我使用的MacBook Pro带有

  • M1芯片
  • MacOS大苏尔
  • Xcode版本13.2.1
  • 节点v14.17.5

我想按照本教程的内容设置一个名为AwesomeProject https://reactnative.dev/docs/environment-setup的新React Native项目React Native CLI快速入门部分。
当我尝试通过键入以下命令在终端中运行应用程序时:npx react-native run-ios我的构建失败,并出现以下错误:
阶段脚本执行[CP-用户]\生成\规范/用户/thomashuber/库/开发人员/Xcode/派生数据/Awesome项目-aprperxvqrezbfeyvousbagyesvr/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-5F4C70EF7D90A5A5BDAEB404279F232A.sh(在项目“Pods”的目标“FBReactNativeSpec”中)(1次失败)
当我尝试在模拟器或iPhone设备上的Xcode中运行它时,在FBReactNativeSpec中出现以下错误:
/bin/sh -c/用户/thomashuber/库/开发人员/Xcode/派生数据/令人惊叹的项目-aprperxvqrezbfeyvousbagyesvr/构建/中间件. noindex/Pods.build/调试-iPhone模拟器/FBReactNativeSpeci.build/脚本-5F4C70EF7D90A5A5BDAEB404279F232A.sh

命令PhaseScriptExecution失败,退出代码为非零

我重新启动了我的MacBook,我删除了这个项目,然后又试了一次。我在Xcode中清理了这个项目,但都没有帮助。我怀疑这是由于我MacBook的M1芯片。

8tntrjer

8tntrjer1#

nvm似乎干扰了构建过程,如果您关闭计算机或最近升级到节点或nvm,该高速缓存文件夹中的某些内容会被重置,构建失败。Nvm是罪魁祸首,在与nvm相关的react native node_modules/react-native/scripts/find-node.sh脚本中围绕它的代码。请遵循以下建议:https://stackoverflow.com/a/70104375/5927929为我工作了一个小的变化。
我的规格:Mac英特尔芯片RN 0.68.2 nvm(0.33.11)&&节点(v18.3.0)安装
操作步骤:

  1. nvm unalias default
  2. nvm alias default node
    1.在xcode中构建...完成
rsl1atfo

rsl1atfo2#

我设法通过编辑项目设置来消除FBReactNativeSpec错误。
请尝试以下操作:
1.在Xcode中,选择应用程序的项目,然后选择目标。
1.在“终端”中输入以下命令以查找节点安装的路径:
which node
这应该会给予你一条路。类似于:

/用户/thomashuber/.nvm/版本/节点/v16.14.0/bin/节点

1.复制此路径。
1.在Xcode中选择目标,点击构建阶段并打开捆绑React原生代码和映像
1.替换NODE_BINARY=node。输入您复制的路径而不是node,这样它就像NODE_BINARY=/Users/thomashuber/.nvm/versions/node/v16.14.0/bin/node这样

8e2ybdfx

8e2ybdfx3#

好吧,值得一试这个。
2种不同的解决方案:
1:当我们收到此错误消息时:
总是向上滚动并阅读日志文件中的问题。任何问题,如语法错误或与您的js代码相关的问题(如在您的js文件中的多次导入或如果您忘记导入某些内容)。如果是,您可以先修复该问题并重新构建它。
在我的例子中,我有一个RN组件的多个导入。
如果没有
2:在你的Mac电脑上安装“钥匙链访问”,锁定和解锁登录并重新构建它,这可能会对你有帮助。
并确保“cd ios”&&“pod安装”,如果你已经忘记这样做后,安装任何的npm软件包。

ubby3x7f

ubby3x7f4#

在我的例子中,这个错误是由于PATH变量中没有设置节点路径引起的。尝试运行下面的命令,它将在PATH变量中设置缺少的节点路径,并解决这个错误。

sudo ln -s $(哪个节点)/usr/本地/bin/节点

如果您的计算机上有一个新的程序,那么您就可以使用该程序来执行一个新的脚本。

ifmq2ha2

ifmq2ha25#

在我的例子中:

  • M1芯片
  • MacOS蒙特雷
  • Xcode版本13.2.1
  • 节点v16.6.0
  • React-原生0.69

我试图在Rossetta下通过终端构建iOS应用程序。有一次我尝试使用原生M1终端-效果很好。
转到您的应用程序,右键单击应用程序,获取信息,选中OFF Open using Rossetta

kqhtkvqz

kqhtkvqz6#

如果其他人尝试了这里和其他线程中提到的一切,它没有工作,这里是什么为我工作!

[!] CocoaPods找不到pod“hermes-engine”的兼容版本:在快照(Podfile.lock)中:hermes-engine(来自../node_modules/react-native/sdks/hermes/hermes-engine.podspec)在Podfile中:hermes-engine(from ../node_modules/react-native/sdks/hermes/hermes-engine.podspec)看起来您已经更改了依赖项hermes-engine的版本,它与存储在Pods/Local Podspecs中的版本不同。您应该运行pod update hermes-engine --no-repo-update以应用本地所做的更改。
但是,我没有运行他们给我的命令,我删除了Podfile.lock和Pods目录,然后重新运行pod install,构建终于工作了!

iswrvxsc

iswrvxsc7#

1.确定节点二进制文件是什么:
$ which node /opt/自制程序/bin/节点
1.在Podfile中添加修复程序功能:
定义fix_fb_react_native_spec(安装程序)安装程序. pod_project.targets.each do|目标物|如果每个target.name做target.build|组态|如果config.name == '调试'或配置名称== '发布' config.build_设置['NODE_BINARY']= '/opt/homebrew/bin/node'结束结束结束结束结束
1.在安装后配置中,添加fix_fb_react_native_spec(安装程序),如下所示:
安装后执行|安装程序|react_native_post_install(安装程序)修复fb_react_native_spec(安装程序)结束

  1. Pod安装
    1.重建(理想情况下使用干净的版本)

相关问题