自动化 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 模拟器:如何从终端构建和启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 发布版本从终端失败

如何从 xcode bot 生成 .ipa?

Xcode:“构建并运行”而不重新启动 iPhone 模拟器

如何修复 Xcode 10 中的“XCtests 间歇性无法在模拟器中启动应用程序”

如何从终端或使用任何 monkeytalk 命令打开 iPhone 应用程序?

启动模拟器时 xcodebuild 超时