简体   繁体   中英

Xcode 10.2.1 Command PhaseScriptExecution failed with a nonzero exit code

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'

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

构建阶段

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 data

在此处输入图像描述

Solution2:

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

Select For install builds only option

在此处输入图像描述

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 use 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:

在此处输入图像描述

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

重新启动对我有用... Mac OS 重新启动,而不是 xCode 重新启动...

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

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:

在此处输入图像描述

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 在此处输入图像描述

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 在此处输入图像描述

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

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)

运行阶段脚本

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.

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"

就我而言,我已从 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 :)

实际上,我在构建我的第一个应用程序时遇到了这个问题,好像最新的 Flutter 版本 2.5.3 发生了一些变化,因为当我降级到 2.5.0 时,我在我的模拟器和我的 iPhone 上构建也没有任何问题

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

在终端中转到项目路径并按照以下步骤操作

  1. pod deintegrate

  2. pod cache clean --all

  3. pod install

for flutter developers: make sure that dart:html or dart:js packages are not being imported in any file.

I was struggling with a similar problem in Xcode 14 ( error build: Command PhaseScriptExecution failed with a nonzero exit code ). This error seems to be a very general description of some more detailed error but I didn't realize it for some time.

Finally I found the description of the error in Build log, but it was really frustrating to navigate there. I recommend you to read the detailed error first and then act. Xcode is not so intuitive... Follow this and navigate there. I hope that it saves time to someone.

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.

对我有帮助的是:在 Targets -> Signing & Capabilities > Uncheck Automatically manage signing(或检查并取消选中是否未选中)> 构建项目

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"'.

对我有用的是排除架构,然后在提供的每个选项上删除 arm64,然后清理构建

就我而言,我的计算机内存不足我打开了一些存储空间,它照常工作

In my case clean build folder and running

flutter precache --ios

pod install on ios folder solves the error.

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.

在此处输入图像描述

  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

面对同样的问题,检查项目的父目录名称是否没有空格,例如我的项目名称 todoapp 在 My App 目录中,将其更改为 MyApp,它应该可以工作。

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 am using multi development environments. One in the office and one at home. The office is the one that I continually use and keep in shape. The one at home I rarely use and hence it becomes out of sync. I am not speaking about the repo being out of date but rather the development environment itself.

So, cutting into chase, my error was more related to new updates resulting from deprecated/obsolete classes which are not available in mu home environment. in office I upgraded to Flutter 3.3 but at home I was still using Flutter 3.0. so there were few new things introduced in 3.3 which I started using and which do not exist in 3.0.

The solution was to upgrade Flutter and then build again. run flutter upgrade in terminal.

I encountered this issue while building the example ios project using react-native-builder bob

Two ways to fix the issue

  1. https://stackoverflow.com/a/60090102/7152965 the result mentioned above
  2. rename the index.ts file to index.js file in example directory

This issue is literally related to your Xcode build phase script.
In my case, In the Target -> Build Phases -> Bundle React Native code and Images , I found some issue in my build script for Sentry.
It was the path that node binary is located. My script wanted node to be in usr/local/bin/node but my path was opt/homebrew/bin/node something like that.
So I just uninstalled node via homebrew and installed node directly from their homepage. And now it works like charm.

More general debugging help

Note that you can double-click the error in the build log to get more details:

XCode 构建日志

Then you will get a tab with the current build log containing more information. Read it really carefully to see if there is a more specific description of the problem there.

XCode错误日志要仔细阅读

In my case I was using Kotlin Multiplatform Mobile and had an error in my build configuration flags there.

If double-clicking does not work: Apparently, you sometimes need to retry building by pressing Cmd + B before being able to double-click the message. I sometimes had to do this multiple times before I could inspect the logs this way.

I'm try After trying almost ALL ways of fixing this issue I came across this command:

flutter run -v > log.txt

This command creates file which logs all events of your build.

Among this long text I found I found a line with a word "error". I guess it's easier just to press cmnd + F and type "error" or "exception" to find the key lines.

Anyway it gave me a key that one of packages doesn't support null-safety . My solution was removing this package.

There are a few common reasons why you might see this error in Xcode:

  • The project's build settings might be misconfigured. You can try cleaning the build (Product > Clean) and then rebuilding the project (Product > Build).

  • There might be issues with your project's code, such as syntax errors or missing files. You can try checking the code for any issues and fixing them.

  • There might be issues with your project's dependencies, such as CocoaPods. You can try updating or reinstalling the dependencies to see if that fixes the issue.

  • There might be issues with your development environment, such as outdated tools or conflicting software. You can try updating your development tools and making sure that you don't have any conflicting software installed.

If none of these solutions fix the issue, you can try searching online for more specific solutions or seeking help on forums or Stack Overflow. It might also be helpful to share the full error message and your project's build log with others to get more specific advice.

Another possible problem solution for React Native developers: check if metro port is not busy!

When building in debug mode - make sure port 8081 for metro packager is free, not busy for other app (in my case antivirus agent after restart) or if previous metro service is not hanged there.

Check for processes listening on given port numbers:

sudo lsof -i -P | grep LISTEN | grep :$PORT

If found something on port 8081 - kill it with it's pid id

sudo kill -9 {PID_ID}

If you newer version of Xcode you can do check this box Targets -> Build Phases -> Run Script ->check box>For install builds only 在此处输入图像描述

再次转到Targets->并删除运行脚本。

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 certificateshere 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!

只需重新启动您的 Mac,它对我有帮助

Fix Xcode Command PhaseScriptExecution failed with a nonzero exit code

The Xcode 11+ “Command PhaseScriptExecution failed with a nonzero exit code” error message can be concerning for developers. This may mean that an application or script is not running properly. Some potential solutions can be attempted to troubleshoot the issue.

Solution #1 Open the Xcode project folder in your Terminal app. Enter and execute the following command: pod deintegrate Execute this command: pod install Re-open Xcode > go to Product > Clean Build Folder. Run your app again.

Solution #2 Head over to Keychain Access. Select Lock & unlock again from the login option. Open Xcode > Clean Xcode Project > Run your build again. If neither of those solutions works, then it is possible to reach out to Apple for support.

Sources: Fix nonzero exit code

**I don't know why but restarting the computer solved this error.**

如果上述解决方案均无效,则重新启动计算机。

I was also facing the same issue , I fixed it by simply removing nvm and my app start working fine on IOS. Try this :

brew uninstall --force nvm

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM