How do I run a Cocoa app after building it from the command line with xcodebuild?

2 Solutions Collect From Internet About “How do I run a Cocoa app after building it from the command line with xcodebuild?”

I wrote a script to do this:

#!/bin/bash

x=$( xcodebuild -showBuildSettings -project MyApp.xcodeproj | grep ' BUILD_DIR =' | sed -e 's/.*= *//' )

DYLD_FRAMEWORK_PATH=$x/Debug DYLD_LIBRARY_PATH=$x/Debug $x/Debug/MyApp.app/Contents/MacOS/MyApp

(I figured this out by running the application from Xcode and then ps -wwE -p on the process to see its environment variables.)

I’ve had the same question and the answer from a paid nerd was helpful.

After doing some research I did find a cleaner solution, which I will provide as an answer here. It’s mainly the parsing code that is cleaner and made re-usable for retrieving other build settings as well.

#!/bin/bash

WORKSPACE_PATH='/Volumes/Development/MyApp/MyApp.xcworkspace'
CONFIGURATION='Debug'
SCHEME='macOS'

getBuildSetting() { 
    echo $(xcodebuild -showBuildSettings -workspace "$WORKSPACE_PATH" -scheme "$SCHEME" -configuration "$CONFIGURATION" | grep " $1" | awk '{print $3}' )
}

BUILT_PRODUCTS_DIR=$(getBuildSetting "BUILT_PRODUCTS_DIR")
FULL_PRODUCT_NAME=$(getBuildSetting "FULL_PRODUCT_NAME")
open -a "$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME" &

Of course this approach makes use of a workspace instead of a project, though it can be easily changed. Also I’ve just used the open command to open the app.