chuan
chuan

Reputation: 813

Tell AppleScript To Build XCode Project

The following are the steps I would like to have:

  1. launch xcode
  2. open a specific xcodeproj file
  3. build and debug it
  4. quit xcode

The following is my first attempt to write AppleScript:

tell application "Xcode"
    tell project "iphone_manual_client"
        debug
    end tell
    close project "iphone_manual_client"
end tell

This only works when xcode has this project opened. I would like to have the project to be opened only when it is necessary to do so.

Can any AppleScript gurus out there points me to the right direction? Thanks.

-chuan-

Upvotes: 13

Views: 10858

Answers (4)

cdespinosa
cdespinosa

Reputation: 20799

Since debugging can take an arbitrary amount of time, you probably want a "with timeout of seconds" / "end timeout" block around the debug message.

Upvotes: 2

chuan
chuan

Reputation: 813

I think I managed to solve it. The following is the AppleScript:

tell application "Xcode"
    open "Users:chuan:Desktop:iphone_manual_client:iphone_manual_client.xcodeproj"
    tell project "iphone_manual_client"
            clean
            build
            (* for some reasons, debug will hang even the debug process has completed. 
               The try block is created to suppress the AppleEvent timeout error 
             *)
            try
                debug
            end try
    end tell
    quit
end tell

The path has to be in format of ":" instead of "/". The only problem now is that after the debug console has done its job, AppleScript seems to "hang" as though waiting for something to happen. I need to do more research on AppleScript to know what is wrong with the script.

Upvotes: 13

stefanB
stefanB

Reputation: 79870

I'm not sure about AppleScript but you can compile it from command line, without opening xcode ide, like this:

xcodebuild -configuration Debug -target WhatATool -project WhatATool.xcodeproj

Where configuration is obvious option, target is the name in Target list of xcode and the project name at the end.

Upvotes: 4

pgb
pgb

Reputation: 25011

There's a command line utility called xcodebuild (man page here) which may work better for what you want to accomplish.

Upvotes: 2

Related Questions