Скажите AppleScript, чтобы построить проект XCode

Ниже перечислены шаги, которые я хотел бы выполнить:

  • запуск xcode
  • открыть конкретный файл xcodeproj
  • создать и отладить его
  • quit xcode

Следующей является первая попытка написать AppleScript:

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

Это работает, только когда xcode открывает этот проект. Я хотел бы, чтобы проект был открыт только тогда, когда это необходимо сделать.

Могут ли любые гуру AppleScript указать мне в правильном направлении? Спасибо.

-chuan -

Ответ 1

Думаю, мне удалось это решить. Ниже приведена статья 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

Путь должен быть в формате ":" вместо "/". Единственная проблема теперь в том, что после того, как консоль отладки выполнила свою работу, AppleScript, похоже, "висит", как будто ожидая чего-то. Мне нужно сделать больше исследований AppleScript, чтобы узнать, что не так с script.

Ответ 2

Я не уверен в AppleScript, но вы можете скомпилировать его из командной строки, не открывая xcode ide, например:

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

Если конфигурация является очевидной опцией, целью является имя в целевом списке xcode и имя проекта в конце.

Ответ 3

Здесь есть утилита командной строки xcodebuild (справочная страница здесь), которая может работать лучше для того, что вы хотите выполнить.

Ответ 4

Поскольку отладка может занять произвольное количество времени, вероятно, вам понадобится блок "с тайм-аутом секунд" / "конец таймаута" вокруг сообщения отладки.