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:
Command PhaseScriptExecution failed with a nonzero exit code
I run it with
/bin/sh -c /Users/thomashuber/Library/Developer/Xcode/DerivedData/AwesomeProject-aprperxvqrezbfeyvousbagyesvr/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-5F4C70EF7D90A5A5BDAEB404279F232A.sh
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.
11
Answers
I managed to get rid of the FBReactNativeSpec error by editing the Project settings.
Try the following:
In Xcode select your app's project and then select the target.
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
Copy this path.
In Xcode with the target selected click on Build Phases and open Bundle React Native code and images
Replace
NODE_BINARY=node
. Instead of node enter the path that you have copied so that it is something like thisNODE_BINARY=/Users/thomashuber/.nvm/versions/node/v16.14.0/bin/node
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.
Pod install
Rebuild (ideally with a clean build)
If you shut down your computer or did a recent upgrade to node or nvm something in the cache folder gets reset and the build fails. The code in the react native
node_modules/react-native/scripts/find-node.sh
script related to nvm. Following this advice: https://stackoverflow.com/a/70104375/5927929 worked for me with a small change.My specs:
Mac intel chip
RN 0.68.2
nvm (0.33.11) && node (v18.3.0) install
Steps:
nvm unalias default
nvm alias default node
In my case this error raising due to node path is not set in PATH Variables.
Try to run below command it will set missing node path in PATH variable and it resolve the error.
https://reactnative.dev/docs/new-architecture-troubleshooting#:~:text=Command%20PhaseScriptExecution%20failed%20with%20a,libraries%20(FBReactNativeSpec%2C%20rncore).
In my case:
I was trying to build the iOS app via terminal under Rossetta. Once I tried to use native M1 terminal – it worked well.
Go to your applications, right click on the app, get info, check OFF
Open using Rossetta
In case someone else tried everything mentioned here and in other threads, and it didn’t work, here is what worked for me!
pod install
and got this error message:But instead of running the command they gave me, I deleted
Podfile.lock
and the Pods directory, then reranpod install
, and the build finally worked!Simply delete the FBReactNativeSpec file from the Pods as shown in the image below.enter image description here
For me anyone of this solutions work because, with Xcode 14.2 and RN0.70.5, there is the following 2 files in
ios
folder which fixe node version with the path (I don’t know since which version and which one adds this files) :.xcode.env
.xcode.env.local
If you are this files inside
ios
folder just do this (with or without nvm) :And put the patch inside the
.xcode.env.local
like this :If this files doesn’t exist, try to add it and maybe Xcode will take it into account :
Inside
ios/.xcode.env
Inside
ios/.xcode.env.local
just run this command
Took me ages to figure this out, my problem was unrelated to any of the other answers.
The issue was that my project’s full path contained an empty space, so turning
/Users/radu/Projects/midi control/ua/UaRemoteControl
into
/Users/radu/Projects/midi-control/ua/UaRemoteControl
fixed the build error in XCode.