自动化 Xcode 模拟器:如何从终端构建和启动应用程序
Posted
技术标签:
【中文标题】自动化 Xcode 模拟器:如何从终端构建和启动应用程序【英文标题】:Automate Xcode Simulator: how to build and launch an app from terminal 【发布时间】:2014-05-31 00:52:51 【问题描述】:有没有办法为 iPhone 构建一个应用程序,让它在模拟器中运行,但只使用控制台?
我正在尝试测试一个将启动的应用程序;发送一些数据然后退出;如果我通过 Xcode 运行它,它工作正常;模拟器启动,一切正常。
但是使用 xcodebuild;应用构建,但不会启动模拟器。
是否有任何命令或标志来执行 Xcode IDE 所做的工作,但使用 xcodebuild?
我为模拟器找到了一个未记录的标志,称为“SimulateApplication”,但遗憾的是没有记录该用法;这使得它有点难以使用。
尝试使用 ios-sim,但我的项目无法使用它。
【问题讨论】:
也许可以在这里试试:gist.github.com/shazron/1314458 感谢 Opal,但该解决方案不可行,我的应用无法使用 ios-sim 运行。 【参考方案1】:一种方法是使用仪器。在某种程度上,您将在“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 怪物只是转换为应用程序编译版本的完整路径。如果您愿意,当然也可以手动输入它。)
【讨论】:
以上是关于自动化 Xcode 模拟器:如何从终端构建和启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Xcode:“构建并运行”而不重新启动 iPhone 模拟器
如何修复 Xcode 10 中的“XCtests 间歇性无法在模拟器中启动应用程序”