自动化Xcode Simulator:如何从终端构建和启动应用程序

时间:2014-05-31 00:52:52

标签: xcodebuild

有没有办法为iPhone构建一个应用程序,让它在模拟器中运行,但只使用控制台?

我正在尝试测试即将推出的应用;发送一些数据然后退出;如果我通过Xcode运行它,它工作正常;模拟器发射,一切都很好。

但是使用xcodebuild;应用程序构建但不会启动模拟器。

是否有任何命令或标志可以执行Xcode IDE的操作,但是使用xcodebuild?

我找到了一个模拟器的未记录标志,称为“SimulateApplication”,但遗憾的是没有记录用法;这使得它有点难以使用。

尝试使用ios-sim,但我的项目无法使用它。

1 个答案:

答案 0 :(得分:0)

一种方法是使用乐器。在某种程度上,您将在“UI自动化”下运行它,但实际上您根本不自动化UI。步骤是:

编译应用:

xcodebuild -sdk iphonesimulator7.1

创建一个无效的虚拟UI自动化脚本(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怪物只是转换为应用程序编译版本的完整路径。如果您愿意,您当然也可以手动输入。)