Xcode 10.2.1 Command PhaseScriptExecution failed with a nonzero exit code

Viewed 371293
Showing Recent Messages:-1: mkdir -p /Users/spritzindia/Library/Developer/Xcode/DerivedData/Contigo-atftiouzrdopcmcpprphpilawwzm/Build/Products/Debug-iphonesimulator/Contigo.app/Frameworks

Showing Recent Messages:-1: rsync --delete -av --filter P .*.?????? --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "/Users/pothi/Library/Developer/Xcode/DerivedData/Contigo-atftiouzrdopcmcpprphpilawwzm/Build/Products/Debug-iphonesimulator/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework" "/Users/pothi/Library/Developer/Xcode/DerivedData/Contigo-atftiouzrdopcmcpprphpilawwzm/Build/Products/Debug-iphonesimulator/Contigo.app/Frameworks"

Command PhaseScriptExecution failed with a nonzero exit code

I deleted derived data. i have tried :

keychain access -> right click on login -> lock & unlock again -> clear Xcode project

Restarted machine, no use

How do I resolve "Command PhaseScriptExecution failed with a nonzero exit code" error when trying to archive project.

And I am using those librarys

pod 'IQKeyboardManagerSwift'
pod 'SDWebImage', '~> 4.0'
pod 'KRPullLoader'
pod 'Paytm-Payments'
58 Answers

After trying all the solutions, I was missing is to enable this option in:

Targets -> Build Phases -> Embedded pods frameworks

In newer versions it may be listed as:

Targets -> Build Phases -> Bundle React Native code and images

  • Run script only when installing

Build Phases

Go to

  1. Keychain Access -> Right-click on login -> Lock & unlock again

  2. Xcode -> Clean Xcode project ->Make build again

Run the following commands from the ios directory:

  1. pod deintegrate
  2. pod install
  3. XCode Clean build

Or, One-Liner:

pod deintegrate; pod install

Warning: Legacy Build System is deprecated and will be removed in a further release.

Xcode -> File -> Workspace Setting -> change Build System to Legacy Build System.

Note - Its not the ideal solution.

For me, I was removing Crashlytics, Fabric and FirebaseCrashlytics. So there was a script (Run Script) for Fabric. So since app was running that first and I had removed the framework already, I was getting this error. So I removed the Run Script tab for Fabrics and then it worked perfectly fine.

Xcode 12.2 solution: Go to:

  1. Build settings -> Excluded Architectures
  2. Delete "arm64"

I was facing this issue because of Firebase Crashlytics. In Targets -> Build Phases -> Run Script

I had Firebase Crashlytics written like

${PODS_ROOT}/FirebaseCrashlytics/run

I changed that and put it in double quotes

"${PODS_ROOT}/FirebaseCrashlytics/run"

I have faced the same issue in Xcode 13. I have updated the Crashlytics SDK after that I got the same issue. In my case I have followed the Solution2

Solution1:

I have removed the data from Run Script.

-> Targets ->go to Build Settings ->Click Run Script -> Remove script data

enter image description here

Solution2:

If script is mandatory to your project just select install builds only option.

Select For install builds only option

enter image description here

Script:

"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/#####/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

In the above script ##### is the app name, if required replace with your app name. If not, use below script.

"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

Solution 3

And one more importent thing is you must set the path of the file properly.

Find the below example path.

You have multiple google services plist piles, in this case you are maintaining 2 different files. Your google service info plist file was under FireBase, Dev. In this case you must add these files path properly. Otherwise you will get the same error.

"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/#####/Firebase/Dev/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

Solution 3 file structure:

enter image description here

For me, the issue was with the node version that xcode was using. My project was building fine in Expo but not in Xcode after ejecting. I found my answer here: https://github.com/expo/expo/issues/8488

  • check you have the latest version of node

    $ node --version

  • delete the version in /usr/local/bin/

    $ rm /usr/local/bin/node

  • re add a sym link

    $ ln -s $(which node) /usr/local/bin/node

Restart worked for me... Mac OS restart, not xCode restart...

I had a similar error

/{path to project root}/Pods/Target Support Files/Pods-{project name}/Pods-{project name}-frameworks.sh: Permission denied
Command PhaseScriptExecution failed with a nonzero exit code

In my case I had received a zip of a repo that included the Pods folder. It turns out that at some point between it being originally created and sent to me, the *.sh files in Pods/Target Support Files/Pods-{PROJECT}/ had all lost their execute permissions. Giving those files +x was the solution

For Example: chmod +x (File name in the error)

In my case: chmod +x Pods-TestExample-frameworks.sh

In my case the error was caused by the lack of space on my machine. Deleting old builds fixed the problem.

The reason

This build phase also lets you provide a list of input and output files. The script always runs when no input and output files are provided. When input and output files are provided, the script only runs if it has never been run before, one of the input files has changed, or one of the output files is missing

If you are using cocoapods, you may not be required to have an additional run script .

The solution

So the solution is remove the script as follows:

enter image description here

In Xcode 12.4, after hours of try found the solution to this.

Go to Target > Architectures Set Build Active Architecture Only to YES and Excluded Architectures to x86_64 enter image description here

try this step if you need: Xcode 11.5 1- open terminal: cd Path_project 2- cd pod clean 3- pod install

if nothing change make this step

1- open Build Phases for target -> [CP] Embed Pods FrameWork check this field enter image description here

Another reason for the error might be is that Xcode is running a script during the run phase.

If this is the case, you have 2 options:

  1. Delete the script (makes sense if the script is NOT important)

  2. Modify/update the scripts location path (Xcode might not be able to locate the script)

Run Phase Script

In my case, the script was important, so I modified/updated its location.

Originally, the script location path was written like this:

$SRCROOT/scripts/clean-assets.sh

Because the scripts path contained spaces (I moved the project to a new directory), I changed the path to this:

"$SRCROOT"/scripts/clean-assets.sh

By adding quotes to SRCROOT, changing it to "$SRCROOT", the error will go away.

If you are doing Unity Project. You can get this error.

Command PhaseScriptExecution failed with a nonzero exit code

The solution is very simple

https://forum.unity.com/threads/error-on-build.561706/

Pre-requisites: Have cocoapods installed

Not Needed: 1. Install "cocoapods" for installing run following line in your terminal: $sudo gem install cocoapods

  1. Open your project folder using terminal
  2. Run this line: chmod +x MapFileParser.sh
  3. Run this line: chmod +x process_symbols.sh

It worked for me)

I think that installing "cocoapods" is not necessary, only step 3 and 4 enough to solve, but it does not work, you can try it.

If you experience this issue in flutter. Try running the application on a real iPhone device from other IDE like android studio or vs code.

The issue was flutter SDK missing iOS-profile-release.

So by running the flutter command

flutter run

It downloads the missing things before running and this solves the problem.

solution for me, none of these arch -x86_64 pod install and etc does not work until I did these steps:

  1. run sudo gem install ffi in terminal.

  2. then run arch -x86_64 pod install and build again.

and worked fine.

For Xcode 11, React Native development environment. I usually have this problem when a dependency is not updated.

You can try following these steps, this usually works for me:

1- Delete your Podfile.lock (I like to use the command '-rm -rf Podfile.lock' on the terminal for this)

2- Delete your Pods folder (I like to use the command '-rm -rf Pods' in the terminal for this)

3- Delete your .xcworkspace

4- Pod install

5- Clear your project into XCode> Product> Clean Build Folder

I have a project in React Native and suddenly this error appeared. I was doing something with homebrew beforehand and this solved the issue for me:

brew update
brew upgrade
brew cleanup

By mistake I had uninstalled carthage from my system. Adding that fixed the issue for me.

Step 1: Download & install latest carthage DMG here: Carthage

Step 2:

carthage update --platform iOS --cache-builds

Step 3: Run project & enjoy. :)

I tried everything above nothing worked for me it was a space in a folder name

/swift files/project a/code.xcworkspace -> /swift_files/project_a/code.xcworkspace
did the trick If I looked deeper it was stopping at /swift

I got the error while using react-native-config.
Got this error since I had an empty line in .env files...

FIRST_PARAM=SOMETHING

SECOND_PARAM_AFTER_EMPTY_LINE=SOMETHING

3 hours wasted, maybe will save someone time

For me the reason was while changing name of app I added a single quote ' in name. I tried different solution and ran into different errors, but at last, while renaming app, I did not include ' single quote and it solved the problem.

For me, the issue was with Sentry.

  1. in Xcode navigate to targets->Build Phases
  2. delete the Upload Debug Symbols to Sentry phase
  3. clean the build folder and try the build again

I used flutter to create iOS project. When build for Simulator, failed with the same error message. It is solved by following work.

xCode 12.3 Build Settings->Build Active Architecture Only, set it to Yes.

In terminal go to project path and follow the below steps

  1. pod deintegrate

  2. pod cache clean --all

  3. pod install

I was able to resolve this error by remove file in Pods -> Targets Support Files -> Pods-AppName -> Pods-AppName-frameworks.sh. After removing that file again install pod using command pod install.

OR.

Try this:

-> quit xcode -> install pod(again) -> start xcode

Take Pods-resources.sh from project path and paste in Terminal

sudo chmod a+x "Pods-resources.sh file path here"

Example Usage:

sudo chmod a+x "/Users/path/Desktop-path/My Work-path/Pods/Pods-resources.sh"

In my case I have removed Run Script from the Build Phase in XCode.

I tried most of above. I was developing in Flutter so what worked for me was pub cache repair.

I had this issue because my Project file name had space, eg. "Ariven 2" , so changing to "Ariven2" solved the issue.

Happy Coding :)

Actually I had this issue in building my first app looks like there is something changed in the new flutter version 2.5.3 the latest because when I downgrade to 2.5.0 I build on my simulator & my iPhone also with no issues

Nothing worked for me until going to VSCode(IDE APP), and ios/App/App.xcodeproj/project.pbxproj that file, and searched EXCLUDED_ARCHS = arm64, and delete that line,

I did the same thing from Xcode, like go to target>build settings, exclude arc thing, and deleted arm64 from there, didn't work before, but deleting from VSCode worked, weird

Delete these Folders/Files

  1. PodFile
  2. PodFile.lock
  3. Pods
  4. Runner.Xcworkspace

Select IOS device/Simulator From Android Studio If build Successfully then build app from XCode

Probably you should do as follow:

  • Remove .xcworkspace and Pod folder
  • Run pod install
  • Delete derived data
  • Clean all project (press alt before click on click)

I tried above things and it worked for me.

Remove a space in fileName

ex)

  • AS-IS: /Users/user/Desktop/My Projects/TestProject/
  • TO-BE: /Users/user/Desktop/MyProjects/TestProject/

In my case was that I changed a line in a script of my Xcode project and that line was badly written (I forgot to add ";" at the end of the line). So I added the ";" and clean and build project.

What helped for me was: In Targets -> Signing & Capabilities > Uncheck Automatically manage signing (or check and uncheck if it was unchecked ) > build project

Try this!

Build phases > Add > New Run Script Phase

Code:

# Type a script or drag a script file from your workspace to insert its path.
# skip if we run in debug
if [ "$CONFIGURATION" == "Debug" ]; then
echo "Skip frameworks cleaning in debug version"
exit 0
fi

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

EXTRACTED_ARCHS=()

for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done

echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"

echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

done

Xcode will refuse to sign them. The above script removes unused architectures.

From Xcode 12.2, you need to remove the $(VALID_ARCHS) build setting from your main and CocoaPods targets, and use $(ARCHS_STANDARD) for all targets. Also, switching to the Legacy Build System is no longer a good solution, since Xcode will deprecate this in a future release. Clear derived data after applying these changes, and before a new rebuild.

I switched from Firebase CocoaPods to Swift Package Manager.

The old symbols upload script still was listed in the 'Build Script' phase.

Delete this and replace with whatever is recommended. At time of publishing it was ' "${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"'.

what worked for me was going to Excluded Architectures and then deleting arm64 on each of the options provided and then clean build

In my case, I was running out of memory on my computer I opened some space on storage and it works as usual

When I encountered this error, it was only when I was archiving. Running and building worked fine but archiving kept throwing the error. What worked for me was updating my cocopods:

sudo gem update cocoapods

In my case, my VALID_ARCHS was containing x86_64. After deleting it, my project has built without problems.

In my case "pod 'FirebaseUI/Facebook'" was causing Firebase to install an earlier version (Terminal: "Installing Firebase 2.5.1 (was 8.10.0)").

Removing "pod 'FirebaseUI/Facebook'" from the pod file fixed it.

Solution for React Native: Run from project root

(Modify "PROJECTNAME" by the name of the project)

cd iOS

cd Pods/Target\ Support\ Files/Pods-PROJECTNAME

chmod 755 Pods-PROJECTNAME-resources.sh
error SyntaxError: 
Component has already been declared. (68:2)

See Xcode logs if you see the above error,then check your navigation I think you added a double component in your project navigation flow

Specifically for Flutter!

It turned out to be because I move a folder with .dart files to a new location and imports referencing the old directory were still in the code. Deleting those imports fixes the problem.

Unfortunately, with VSCode, all you get is a warning that the import is not used, not that it doesn't exits! Opening Xcode revealed these errors.

I encountered this error in the context of a React-Native project running on iOS. I did several things so it's hard to know which one fixed it:

  • Make sure you don't have errors in your bash or zshrc profile -> I had a error related to my jdk. You will know if when opening a terminal window it shows an error/warning
  • Make sure you don't have spaces in the path
  • If you are using Firebase, make sure your GoogleService-Info file is in the ios folder and not in the ios>project folder
  • Do not keep the project in an iCloud folder, especially if you are low on space. I suspect this was a big factor for mine

Finally, my worked when doing these and running react-native 0.67.2. The newer version on it's own didn't fix it, I had to do at least one of these other assertions to get it working.

Things to consider:

  • Running the project in Xcode will usually give you more insight into the problem
  • Clearing the Xcode build folder wasn't enough on it's own to fix it but when trying a potential solution it is important you do it (and potentially also pod deintegrate && pod install) to make sure there are no traces of the previous ios build.
  • I am running node version 16.13, running node 17 gave me different errors and I wouldn't recommend it to date. I am running macOS Monterrey and Xcode 13.2.1, but I tried on BigSur and also Xcode 12.5.1 and the still got the error.

For react-native, this error is discussed in length here: https://github.com/facebook/react-native/issues/31181

For Mac M1, remove arm64 in build settings fix the issue on real device build. I add this string when run with simulator.

enter image description here

  1. delete node_modules folder
  2. delete Pods folder under ios
  3. run yarn cache clean
  4. run yarn
  5. run cd ios & pod install
  6. enjoy build

If you need to run the project in a physical device, none of the answers worked for me in Xcode 13.3. What worked for me was deleting VALID_ARCHS = x86_64; from project.pbxproj everywhere. but this won't let you run in simulator

Facing the same issue check if the parent directory name of your project has no space for Example my project name todoapp is inside My App directory change it to MyApp and it should work.

Solution for Flutter users

In case your app was developed using Flutter, the above steps worked for me:

Run:

  1. flutter run
  2. flutter pub get
  3. run `pod install inside the iOS folder
  4. build

I had the same problem in Xcode 11.5 after revoking a certificate through Apple's developer homepage and adding it again (even though it looked different afterwards):

Every time I tried to archive my app, it would fail at the very end (not the pods but my actual app) with the same PhaseScriptExecution failed with a nonzero exit code error message. There is/was a valid team with an "Apple Development" signing certificate in "Signing & Capabilities" (project file in Xcode) and locking & unlocking the keychain, cleaning & building the project, restarting,... didn't work.

The problem was caused by having two active certificates of the same type that I must have added on accident, in addition to the renewed one. I deleted both the renewed one and the duplicate and it worked again.

You can find your certificates here or find the page like this:

Also check that there aren't any duplicates in your keychain! Be careful though - don't delete or add anything unless you know what you're doing, otherwise you might create a huge mess!

Related