Command PhaseScriptExecution failed with a nonzero exit code - Xcode 13.4.1 - xcode

I'm using M1 chip and xCode 13.4.1. I get the following React Native error while executing the app in the simulator:
The following build commands failed:
PhaseScriptExecution [CP-User]\ Generate\ Specs /Users/Ibra/Library/Developer/Xcode/DerivedData/Mario-girhlsdkqiibhqhflwlyrybpo/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-46EB2E110.sh (in target 'FBReactNativeSpec' from project 'Pods')
(1 failure)
The problem persists even when I start a brand-new React Native project and try to execute it on iOS. What led to the error and how can it be fixed?
Thank you

Described answers didn't help me, but I started reading error description: and I found out that in error description on the line 2: my folder's name was written partially. Folder name consisted 2 words divided by 1 space example: "My folder" in the error was written just "My". I just changed folder's name to "MyFolder" and it helped me to fix the problem

it has multiple solutions:
to solve this run this command in terminal in ios folder , pod deintergrate and install pod with the commad pod install
Restart your Mac , it is some time due to cache, delete derived data and logs from XCode -> Prefrences and location

I faced same issue and I figured out following solutions:
What worked for me was npx react-native-clean-project and choosing y for all options, this will clean your React Native project by purging caches and modules, and reinstalling them again.
And here're some solutions that worked for others:
If you're using nvm, nvm unalias default could solve the issue.
This error could be due to Xcode can't find your node path, so try sudo ln -s $(which node) /usr/local/bin/node
Delete node_modules then cd ios && pod deintegrate then reinstall node modules and npx react-native start --reset-cache

I solve this issue with below procedure:
Keychain Access > Cetificates > Login
Find any Apple Certificate that has the blue + symbol
Change it to "Use System Defaults" and close it.
You'll see a pop up. Type in your password to update settings.
Close Keychain. Open your project, clean build files and run.
Note: Mac with M1, Xcode 14.1

Related

CFBundleIdentifier does not exist on react-native

Easy bounty here for grabs. Does not necessarily require any react-native experience. Problem seems to be in open source code, which is available out there:
Updated xcode, and now when I try to run my react-native app by issuing following command: react-native run-ios I get an error:
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist
error Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier DerivedData/Build/Products/Debug-iphonesimulator/MyAppName.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist
debug Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier DerivedData/Build/Products/Debug-iphonesimulator/MyAppName.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist
at checkExecSyncError (child_process.js:616:11)
at Object.execFileSync (child_process.js:634:13)
at runOnSimulator (project-root-dir/node_modules/#react-native-community/cli/build/commands/runIOS/runIOS.js:181:45)
Before those errors, the command prints out info about successful build, and that it is about to install the build:
info ** BUILD SUCCEEDED **
info Installing DerivedData/Build/Products/Debug-iphonesimulator/MyAppName.app
So it seems the build is ok, but when it tries to install the app it fails?
Think I've tried "everything" I found from other questions with this similar error message, but nothing has worked for me.
Some specs:
react-native: 0.59.10
react: 16.8.3
xcode-version: Version 12.2 (12B45b)
I know there are similar questions on stackoverflow. But since none of the solutions provided there worked for me, and I wish to get it fixed, I made this separate question.
I do not know where the Info.plist file is that it tries to find: DerivedData/Build/Products/Debug-iphonesimulator/MyAppName.app/Info.plist
Inside my ios folder, there is a folder called DerivedData, but inside that there are no folder with a name Build. So I think it might be looking from a wrong location?
UPDATE:
I've been able to pinpoint where the cli launch goes wrong:
https://github.com/react-native-community/cli/blob/ba298d9c47af522f0377325bebc6c2075d41790a/packages/platform-ios/src/commands/runIOS/index.ts#L378
If I change that line let buildPath = build/${scheme}/Build/Products/${configuration}-${device}/${appName}.app
to -> build/${scheme}/Build/Products/${configuration}-${device}/MyAppRealName.app;
Then the dev launch works nicely, there's no problem. So it seems that getting the appName goes wrong. The appName is resolved here: https://github.com/react-native-community/cli/blob/ba298d9c47af522f0377325bebc6c2075d41790a/packages/platform-ios/src/commands/runIOS/index.ts#L387
const productNameMatch = /export FULL_PRODUCT_NAME="?(.+).app"?$/m.exec(buildOutput);
I could do a post install npm script that just sets the name of the app correct and call it a day. But that's pretty hacky way. I wonder if there's an alternative that works better? I see that the runIOS file has been updated from the version that I have quite much, but the function getProductName still remains the same. So Im not sure if updating just the cli would work, or if it would even be possible, because it might require a newer react-native version, which is not an option for me right now.
newer version of #react-native-community/cli is not working on older version react-native because in newer version they have change getProductName to getPlatformName. for more detail you can read summary of this PR
Solution
As a local workaround, patch the package by patch-package node_modules/#react-native-community/cli-platform-ios/build/commands/runIOS/index.js and edited getProductName (lines 362–365) to read:
function getProductName(buildOutput) {
const productNameMatch = /export FULL_PRODUCT_NAME\\?="?(.+).app"?$/m.exec(buildOutput);
return productNameMatch ? productNameMatch[1].replace(/(?:\\(.))/g, '$1') : null;
}
The result from react-native run-ios is:
DerivedData/Build/Products/Debug-iphonesimulator/MyAppName.app/Info.plist
The correct should be:
DerivedData/Build/Products/Debug-iphonesimulator/MyAppRealName.app/Info.plist
Then you could fix it by edit Xcode project as:
Open Product menu (status bar)
Scheme -> Edit Scheme
Under build section, add a post-action
In provide build settings from: choose target of your app
Use the script to copy wrongname.app to realname.app: cp ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app ${BUILT_PRODUCTS_DIR}/real_name.app
Or you can use symlinks instead of copying.

How to deploy an Expo/React Native app to iOS Device from Xcode

I'm somewhat new to react native and expo but I've been trying to deploy a test version to my phone but can't figure out how to get it to build.
For some extra context, I built most of it in Expo and then ejected it (yes I know this isn't the best choice but I liked the features Expo provided). I ejected it because I needed NFC support which isn't currently supported in Expo so I added that in manually in Xcode after I ejected.
When I open the Xcode workspace and try to deploy it to my phone I get the following error:
Error: Failed to connect to the packager server. If you did not start this build by running 'react-native run-android', you can start the packager manually by running 'react-native start' in the project directory. (Error: Request to packager server failed: 500)
    at /Users/user/Downloads/honorProj-reactNatveFinal/honorProj/reactNative/ethelontisApp/node_modules/expo-updates/scripts/createManifest.js:40:11
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
Command PhaseScriptExecution failed with a nonzero exit code
I know it says run react-native start in the project directory (although I'm not entirely what the at /Users/... is refering too) but what really threw me was that it mentioned react-native run-android which doesn't seem like it should be related at all.
Lastly I'm completely and utterly lost with what Command PhaseScriptExecution is.
Thanks for the help.
I was facing the exact same issue. So I just completed the set up the android development first.
But before doing anything, follow the below steps, it may solves the problem.
Step-1: Open terminal and navigate to your project directory example: cd Your project path.
Step-2: Type npx react-native start
Step-3: If you get any error like "error listen EADDRINUSE: address already in use :::8081"
Then follow step-4 to 6:
Step-4 : type sudo lsof -n -i4TCP:8081 // You will get PID from here
Step-5: type kill -9 PIDvalue
Step-6: Repeat the step 2 and 3 once again
If you will not get any error in step- 2 then type npx react-native run-android
and check if there is any error. If yes, then you have to set up the android development first to make it working - (As of now I found this way, but not sure if anyone can find any better way).
Else Open the code using xcode then clean the build and also clean the build folder then try to run.
Thanks, Hope it will help.

bin/sh: /Users/xxx(bin/xcode_backend.sh: Not a directory Command PhaseScriptExecution failed with a nonzero exit code

I had problems with the flutter_facebook_login package, more specific with the pod file when building for iOS. After some research I've updated the pod repo, removed the pod.lock file, run pod install and everything installed fine but now I get this error
bin/sh: /Users/xxx(bin/xcode_backend.sh: Not a directory Command
PhaseScriptExecution failed with a nonzero exit code
note: Using new build systemnote: Planning buildnote: Constructing build description
... and I have no idea what happens. So far I've locked and unlocked the login in the keychain access, like suggested an answer on stackoverflow, then added Flutter SDK path in User-Defined Settings, following another answer, but the issue persists.
Can anyone help me with this, please?
I've figured it out.
In Xcode Targets, Project Name (Runner in this case) Build Settings, added new build setting:
FLUTTER_ROOT and then the PATH to the flutter directory /Users/user_name/Developer/flutter/ in my case and it works fine.
Screenshot:
I've followed this answer

Xcode, Pods ProjectName.debug.xcconfig unable to open file. Wrong directory

When I build project, I see build error: ProjectName.debug.xcconfig unable to open file. I couldn't understand my problem for a long time, but today I take attention, what directory is wrong: full error: projectName/Pods/Pods...ProjectName.debug.xcconfig unable to open file Where Pods part duplicated, so correct directory must be as projectName/Pods...ProjectName.debug.xcconfig How to fix it?
Xcode 10.1
After trying other suggestions found here #8091 (comment) and at Incorrect path for Pods.debug.xcconfig in Xcode?
I found that Kaspik's suggestion worked:
pod deintegrate
pod install
edit the .xcodeproj/project.pbxproj file and change the PBXGroup "path = Pods" to "name = Pods"
source https://github.com/CocoaPods/CocoaPods/issues/8091
updated from: pod reintegrate to: pod deintegrate
I have encored with this solution...Here is how I solved
Close Xcode,
run on terminal "pod install"
open xcode,
clean build folder and run again
Remove the duplicates from the Pods folder ƒrom xcode project here:
Deleting extra files in target->Linked Frameworks and Libraries solved my problem
Do the following
Delete .xcworkspace file
Go to project build phases - delete Check Pods Manifest.lock and Embed Pods Framework section
Remove Pods folder from the left project navigator
Remove Pods folder from the project directory
Delete everything related to pods except Podfile
Do Pod install
This should resolve the problem.
Run pod repo update first and then you should be able to install pods with yarn install:pods if you're using yarn.
I was able to manage by reopening Xcode, in my case i had already run pod install with the ide open (Xcode 12.0).
Clean build folder. Then use the code following:
pod reintegrate
pod install
I ran into this issue in CI. Simply running xcodebuild clean fixed it for me.
In Xcode that'd be equivalent to cmd + shift + k.
I was getting the same issue, I checked my npm modules was corrupted so I deleted npm modules
And npm install ==> cd iOS ==> pod install.
And the code works smoothly!
Happy coding!
Better solution for further this kind of issues
$ cd ~/.cocoapods/repos
$ git clone https://github.com/CocoaPods/Specs.git master

Swift - Unable to open file in target Xcode 10

I am trying to run Aplication which I have downloaded from GitHub.
When I run get error unable to open file in target, I have Xcode 10.
I already searched for solution and get this one.
I had the same problem, but in Xcode 6.1.1 - what fixed it for me was to change the configuration file setting to None for the two Pods-related targets, then run pod install again.
The configuration file setting is found by selecting the project (not the target) and then the Info tab.
But cant find configuration file location.
Here is the error picture:
https://i.stack.imgur.com/Ql3M5.png
In File -> Project setting -> select Legacy Build System
Make sure you have opened .xcworkspace file and pod installed properly.
A solution I found to work for me was
Inside the project root directory
root
|- <ProjectName>
|- <ProjectName>.xcodeproj
|- <ProjectName>.xcworkspace
|- <ProjectName>Tests
|- Podfile
|- Podfile.lock
|- Pods
Delete the following files. Ensure you have copied the contents of Podfile.
Podfile
Podfile.lock
Pods Folder
Open your .xcodeproj using Xcode or using terminal command
open <ProjectName>.xcodeproj
Inside Xcode, locate the "Pods" folder which should contain something along the lines of...
Pods
|- Pods-<ProjectName>.debug.xconfig
|- Pods-<ProjectName>.release.xconfig
Delete those references and select "move to trash" when prompted.
Close Xcode
Now run the following:
pod init && pod install
Open your Podfile and paste in your previously copied old Podfile that was deleted earlier.
run the following command:
pod install
In terminal open Xcode again with the following command
open <ProjectName>.xcworkspace
Note: that I opened the xcworkspace file NOT the xcodeproj file.
At this point for me I was able to compile my code as normal without having to change back to the Legacy Build System.
Reinstall the pods to get everything cleaned up:
pod deintegrate
pod cache clean --all
pod install
This happened due to change the Project Name or Miss the Pods from Your Project
if the Pods are Miss Then Following Method
open the Project and Command + Shift + K
Close the Project
Open Terminal got to Your Xcode Project Directory cd /your-Xcode-project
if coca pods are already installed so skip this Point if not sudo gem install cocoa pods run this Command on terminal
pod install
If Above Method not Working so its Project name Issue then Go with following Method
First, open your Pod File and change the target
target 'your Xcode project name' do
run the Following Commands from Terminal
go to Your directory from terminal
pod deintegrate
pod clean
pod install
Done now open your xcWorkSpace file
For me it works, update the version of CocoaPods and reinstall the pods
sudo gem install cocoapods
Run following commands after you have downloaded Xcode project from GitHub:
cd /your-xcode-project
pod install
This worked on Xcode 10.2.
I had this issue too with project I cloned from GitLab. Your error looks extremely similar to mine. I solved it by running this in Terminal:
cd path/to/your/project
pod install
When I checked project folder in Finder, there was a Podfile. But same project viewed in Xcode had nothing under 'Pods' module. From this I figured out the pods are not installed (or installed properly?) and installing them solved this error.
If there is some Pods or .xcworkspace file, it might be worth doing pod deintegrate before installation - just to be sure :)
I was facing the same error opening an old project in a new macbook with a recent installation of Xcode and no cocoa pods or anything related on it.
My way to fix this was following some of the steps en the issues #1727 of alamofire and change some things. Open the terminal and cd project where the pod file is.
So, this is what worked for me:
sudo gem install cocoa pods
pod repo remove master
pod setup
pod repo update
pod install
Then just, clean build folder and build the project.
Quit Xcode
Open Terminal
Change to directory (where podfile is present)
pod install
I was trying to do pod install after removing unwanted pod(steps 2,3 & 4), but it still was not working. Quitting Xcode (steps 1, 2, 3 & 5) worked.
If you suddenly start seeing this issue on an existing project, before you try anything else, try
pod update
Make sure your pod build settings looks good
Clean build folder
Retry building
1-
in xcode
menu --> project --> clean build files
2-
close project
3-
in terminal
cd
4-
in terminal
pod update
5-
re-open
project..xcworkspace file
6-
clean, build
good luck
delete file name "Podfile.lock" and try pod install again.
Just stumbled into the issue recently myself. It seems it's a bug in CocoaPods.
Possible fix: gem install cocoapods --pre
I tried below and error went away !!
project name - SwiftExample
Went to Pods -> Info -> Configurations -> Debug
Change to None for Pods-SwiftExample
Code compiles even after setting it back to original.
I can see many solutions already given there. But I believe the easiest way to resolve this problem is
Open the project directory in Terminal
Delete .xcworkspace file
Run pod install
That's it. The newly created .xcworkspace file will work without any problem.
Open your project file (project.pbxproj) and check of 'Pods' is added to the path before the 'Target Support Files' folder. Remove that and i got it to build fine.

Resources