'React Native - FBReactNativeSpec Command PhaseScriptExecution failed with a nonzero exit code

I am using a MacBook Pro with

  • M1 chip
  • MacOS Big Sur
  • Xcode Version 13.2.1
  • node v14.17.5

I wanted to follow this tutorial to set up a new React Native project called AwesomeProject https://reactnative.dev/docs/environment-setup the section with React Native CLI Quickstart.

When I try to run the app in terminal by typing: npx react-native run-ios my build fails with the following error:

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 (in target 'FBReactNativeSpec' from project 'Pods') (1 failure)

When I try to run it in Xcode either on a simulator or on an iPhone device I get the following error in FBReactNativeSpec:

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

Command PhaseScriptExecution failed with a nonzero exit code

I restarted my MacBook, I deleted the project and tried it again. I cleaned the project in Xcode but none of it helps. I suspect that it is due the M1 chip of my MacBook.



Solution 1:[1]

I managed to get rid of the FBReactNativeSpec error by editing the Project settings.

Try the following:

  1. In Xcode select your app's project and then select the target.

  2. In Terminal enter the following command to find out the path of your node installation:

which node

This should give you a path. Something like:

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

  1. Copy this path.

  2. In Xcode with the target selected click on Build Phases and open Bundle React Native code and images

  3. Replace NODE_BINARY=node. Instead of node enter the path that you have copied so that it is something like this NODE_BINARY=/Users/thomashuber/.nvm/versions/node/v16.14.0/bin/nod

Replacing node with node path

Solution 2:[2]

Ok, worth trying this.

2 different solutions :

1: As soon as we get this error message:

Always scroll up & read the issue if written in that log file. Any issues like syntax error or issue related to your js code (like multiple imports in your js files or if you had forgot to import something). If yes, you can fix that first & re build it.

In my case I had multiple imports of one of the RN components.

if not

2: got to 'Keychain access' in your mac, lock & unlock login and re build it, this may help you.

And make sure to 'cd ios' && 'pod install' if you have forgot to do it after installing any of the npm package.

Solution 3:[3]

  1. Determine what your node binary is:

    $ which node /opt/homebrew/bin/node

  2. Add a fixer function in your Podfile:

    def fix_fb_react_native_spec(installer) installer.pods_project.targets.each do |target| if target.name == 'FBReactNativeSpec' target.build_configurations.each do |config| if config.name == 'Debug' or config.name == 'Release' config.build_settings['NODE_BINARY'] = '/opt/homebrew/bin/node' end end end end end

  3. In your postinstall, add fix_fb_react_native_spec(installer) like so:

    post_install do |installer| react_native_post_install(installer) fix_fb_react_native_spec(installer) end

  4. Pod install

  5. Rebuild (ideally with a clean build)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 es1
Solution 2 Shishir Aithal
Solution 3 Raj Shah