Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can xcodebuild delete the contents of the project's Build Folder?

Back in Xcode 9, there was a build option called "Clean Build Folder..." (K), which deleted all files in the build folder, only leaving the folder behind with no contents. Since then, this behavior was removed, the menu item's title changed to "Clean Build Folder", and now behaving like the old "Clean" used to.

xcodebuild has a build option called clean which simply does the same thing as Xcode's "Clean Build Folder" (K), which leaves stuff around.

Is there any way to delete all files in the build folder via a scriptable command?


What I've tried so far:

xcodebuild clean -workspace "My Workspace.xcworkspace" -scheme "My Scheme"

This, as I said, doesn't actually clean everything up. For that, I added this bodge to my build script:

export IS_XCODE_CACHE_FOLDER_PRESENT="`ls -la ~/Library/Developer/ | grep -x "Xcode"`"

if [ 0 -ne "$IS_XCODE_CACHE_FOLDER_PRESENT" ]; then
    echo "Xcode cache folder should not be present at build time! Attempting to delete..."
    rm -rf "~/Library/Developer/Xcode"
    RM_RESULT=$?
    if [ 0 -ne "$RM_RESULT" ]; then
        echo "FAILED to remove Xcode cache folder!"
        exit $RM_RESULT
    fi
fi
like image 951
Ky. Avatar asked Mar 22 '18 16:03

Ky.


People also ask

How do I clear my build folder?

To clean the build folder you can use the shortcut Command+Option+Shift+K or Menu Bar → Product → Hold Option Key → Clean build Folder .

What is XcodeBuild command?

The XcodeBuild build helper is a wrapper around the command line invocation of Xcode. It will abstract the calls like xcodebuild -project app.

How do I completely delete a project in Xcode?

With Xcode closed, locate that project folder in the Finder, move it to the trash, then empty the trash.


1 Answers

I faced a similar requirement. So after trying for several hours, I resolved to a custom script instead of using Xcode's run script.

So instead of using Xcode to run the app on the simulator I use my script which in turn first cleans the build folder, then builds the project, then installs and finally launches the app in the simulator.

Here is what I am using as a quick script:

 # Delete Build directory
 rm -rf ./build/Build

 # pod install
 pod install

 # Build project
 xcrun xcodebuild -scheme Example -workspace Example.xcworkspace -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 11 Pro Max,OS=13.1' -derivedDataPath build

 # Install App
 xcrun simctl install "iPhone 11 Pro Max" ./build/Build/Products/Debug-iphonesimulator/Example.app/

 # Launch in Simulator
 xcrun simctl launch "iPhone 11 Pro Max" com.ihak.arpatech.Example

Note: See this question I posted to know the issue I was facing.

like image 140
HAK Avatar answered Oct 02 '22 17:10

HAK