【问题标题】:React Native - FBReactNativeSpec Command PhaseScriptExecution failed with a nonzero exit codeReact Native - FBReactNativeSpec 命令 PhaseScriptExecution 失败,退出代码非零
【发布时间】:2022-08-05 18:21:59
【问题描述】:

我正在使用 MacBook Pro

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

我想按照本教程设置一个新的 React Native 项目,名为 AwesomeProject https://reactnative.dev/docs/environment-setup React Native CLI 快速入门部分。

当我尝试通过键入以下内容在终端中运行应用程序时:npx react-native run-ios 我的构建失败并出现以下错误:

PhaseScriptExecution [CP-User]\\ Generate\\ Specs /Users/thomashuber/Library/Developer/Xcode/DerivedData/AwesomeProject-aprperxvqrezbfeyvousbagyesvr/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-5F4C70EF7D90A5A5BDAEB404279F232A .sh(在项目 \'Pods\' 的目标 \'FBReactNativeSpec\' 中) (1 次失败)

当我尝试在模拟器或 iPhone 设备上的 Xcode 中运行它时,出现以下错误FBReactNativeSpec

/bin/sh -c /Users/thomashuber/Library/Developer/Xcode/DerivedData/AwesomeProject-aprperxvqrezbfeyvousbagyesvr/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-5F4C70EF7D90A5A5BDAEB404279F232A.sh

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

我重新启动了我的 MacBook,我删除了该项目并再次尝试。我在 Xcode 中清理了项目,但没有任何帮助。我怀疑是因为我的 MacBook 的 M1 芯片。

    标签: ios xcode react-native terminal apple-m1


    【解决方案1】:

    通过编辑项目设置,我设法摆脱了 FBReactNativeSpec 错误。

    尝试以下操作:

    1. 在 Xcode 中选择您的应用程序的项目,然后选择目标。

    2. 在终端中输入以下命令以找出节点安装的路径:

      which node

      这应该给你一个路径。就像是:

      /Users/thomashuber/.nvm/versions/node/v16.14.0/bin/node

      1. 复制此路径。

      2. 在选择目标的 Xcode 中单击构建阶段并打开捆绑 React Native 代码和图像

      3. 替换NODE_BINARY=node。代替节点输入您复制的路径,使其类似于NODE_BINARY=/Users/thomashuber/.nvm/versions/node/v16.14.0/bin/node

    【讨论】:

    • 不为我工作。以及我没有使用 nvm
    【解决方案2】:

    似乎 nvm 扰乱了构建过程,如果您关闭计算机或最近升级到 node 或 nvm,缓存文件夹中的某些内容将被重置并且构建失败。 Nvm 是罪魁祸首,在与 nvm 相关的 react native node_modules/react-native/scripts/find-node.sh 脚本中围绕它的代码。遵循这个建议:https://stackoverflow.com/a/70104375/5927929 为我工作了一点点变化。

    我的规格: Mac 英特尔芯片 注册护士 0.68.2 nvm (0.33.11) && 节点 (v18.3.0) 安装

    脚步:

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

    【讨论】:

      【解决方案3】:

      好的,值得一试。

      2种不同的解决方案:

      1:一旦我们收到此错误消息:

      如果写入该日志文件,请始终向上滚动并阅读问题。任何问题,例如语法错误或与您的 js 代码相关的问题(例如您的 js 文件中的多个导入,或者您忘记导入某些内容)。 如果是,您可以先修复它并重新构建它。

      就我而言,我多次导入其中一个 RN 组件。

      如果不

      2:在你的mac中进入'钥匙串访问',锁定和解锁登录并重新构建它,这可能会对你有所帮助。

      并确保 'cd ios' && 'pod 安装' 如果您在安装任何 npm 包后忘记执行此操作。

      【讨论】:

        【解决方案4】:
        1. 确定您的节点二进制文件是什么:

          $ 哪个节点 /opt/homebrew/bin/node

        2. 在你的 Podfile 中添加一个修复函数:

          def fix_fb_react_native_spec(安装程序) installer.pods_project.targets.each 做 |target| 如果 target.name == 'FBReactNativeSpec' target.build_configurations.each 做 |config| 如果 config.name == 'Debug' 或 config.name == 'Release' config.build_settings['NODE_BINARY'] = '/opt/homebrew/bin/node' 结尾 结尾 结尾 结尾 结尾

        3. 在您的安装后,像这样添加 fix_fb_react_native_spec(installer):

          post_install 做 |安装程序| react_native_post_install(安装程序) fix_fb_react_native_spec(安装程序) 结尾

        4. 吊舱安装

        5. 重建(最好是干净的构建)

        【讨论】:

          【解决方案5】:

          尝试运行以下命令,它将在 PATH 变量中设置缺少的节点路径并解决错误。

          sudo ln -s $(哪个节点) /usr/local/bin/node

          https://reactnative.dev/docs/new-architecture-troubleshooting#:~:text=Command%20PhaseScriptExecution%20failed%20with%20a,libraries%20(FBReactNativeSpec%2C%20rncore)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-27
            • 2020-12-18
            • 2020-10-25
            • 2021-04-30
            • 2021-02-03
            相关资源
            最近更新 更多