Как создать и запустить Xcode с помощью Applescript?

Я пытаюсь имитировать нажатие клавиши Xcode ⌘-R в другом редакторе (а именно, Vim); Я думал, что смогу сделать это с помощью сценариев оболочки и applescript, но, похоже, он работает неправильно:

open -a Xcode "MyProj.xcodeproj"
osascript -e 'tell app "Xcode"' -e 'build' -e 'launch' -e 'end tell'

Проблема в том, что приложение запускается независимо от того, сообщает ли Xcode об ошибках. Есть ли способ исправить это?


person Michael    schedule 08.07.2009    source источник
comment
возможный дубликат Сообщите AppleScript о создании проекта XCode   -  person redolent    schedule 06.08.2015


Ответы (3)


Я использую:

osascript -e 'tell application "Xcode"
    activate

    set targetProject to active workspace document
    if (build targetProject) is equal to "Build succeeded" then
        launch targetProject
    end if
end tell'

Конечно, чтобы это работало, проект должен быть уже открыт в Xcode. (Я бы предпочел не закодировать текущий проект в свой скрипт)

person Harry Jordan    schedule 16.07.2009
comment
Похоже, это больше не работает с Xcode 4.6: Xcode получил ошибку: не удалось получить активный документ проекта. Хотя, конечно, в Xcode открыт сборный проект. - person Thomas Tempelmann; 22.03.2013
comment
С XCode 5 я получаю 107: 126: ошибка выполнения: Xcode получил ошибку: указанный объект является свойством, а не элементом. (-10008) - person markshep; 22.10.2013
comment
В Xcode 5 замените активный документ проекта на активный документ рабочей области - person Ian; 15.11.2013

Если вам действительно не нужен графический интерфейс Xcode, вы можете просто использовать xcodebuild вместо запуска и написания сценариев Xcode.

person smorgan    schedule 08.07.2009
comment
Я знаю о xcodebuild, но я хотел, чтобы это работало в графическом интерфейсе, в основном из-за списка ошибок, который приводит вас к строке ошибки при двойном щелчке. - person Michael; 09.07.2009

А для других пользователей TextMate - скомбинированная .. улучшенная версия путем объединения ее вместе с существующей командой «Открыть проект в Xcode ..»:

PROJECT=$(ruby -- "${TM_BUNDLE_SUPPORT}/bin/find_xcode_project.rb")
if [[ -f "${PROJECT}/project.pbxproj" ]]; then
   open -a Xcode "${PROJECT}"
else
   echo "Didn't find an Xcode project file."
   echo "You may want to set TM_XCODE_PROJECT."
fi


osascript -e 'tell application "Xcode"
    activate

    set targetProject to project of active project document
    if (build targetProject) is equal to "Build succeeded" then
        launch targetProject
    end if
end tell'
person Harry Jordan    schedule 16.07.2009