Automate Xcode Simulator: как собрать и запустить приложение из терминала

Есть ли способ создать приложение для iPhone и запустить его в симуляторе, но используя только консоль?

Я пытаюсь протестировать приложение, которое запустится; отправить некоторые данные, а затем выйти; если я запускаю его через Xcode, он работает нормально; запуск симулятора и все хорошо.

Но с помощью xcodebuild; сборка приложения, но не запускает симулятор.

Есть ли какая-либо команда или флаг для выполнения того, что делает Xcode IDE, но с использованием xcodebuild?

Я нашел недокументированный флаг для симулятора, который называется «SimulateApplication», но, к сожалению, его использование не задокументировано; что делает его немного сложным в использовании.

Пробовал с ios-sim, но мой проект с ним не работает.


person Community    schedule 31.05.2014    source источник
comment
Попробуйте здесь: gist.github.com/shazron/1314458   -  person Opal    schedule 31.05.2014
comment
Спасибо, Опал, но это решение неосуществимо, мое приложение не может работать с ios-sim.   -  person    schedule 13.06.2014


Ответы (1)


Один из способов — использовать инструменты. В некотором смысле, вы запустите его под «автоматизацией пользовательского интерфейса», но на самом деле вы вообще не автоматизируете пользовательский интерфейс. Шаги:

Скомпилируйте приложение:

xcodebuild -sdk iphonesimulator7.1

Создайте фиктивный скрипт автоматизации пользовательского интерфейса, который ничего не делает (myscript.js):

while(true) {
    UIATarget.localTarget().delay(100);
}

Затем запустите приложение через инструменты:

instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate "$(pwd)/$(find . -name '*.app' | grep iphonesimulator)" -e UIASCRIPT myscript.js

(Монстр find | grep просто преобразуется в полный путь к скомпилированной версии приложения. Вы, конечно, можете ввести его вручную, если хотите.)

person Markku Kero    schedule 30.07.2014