繁体   English   中英

从Mac OS X控制台启动iOS App

[英]launching iOS App from Mac OS X console

为了自动测试应用程序,我想反复启动一个iOS应用程序,该应用程序的主要功能来自我的mac; 为了简单起见,我们只说它需要一个argc文件,而我有100个文件需要测试。 从理论上讲,我只想复制xcode 在设备上运行的行为,而不是越狱 该应用程序与硬件紧密相关,因此仅凭模拟器是不够的。

有几个页面执行类似的操作,但是没有一个页面使用该设备,并且没有一个页面能够真正阐明控制台上的命令行的实际外观。

1) http://blog.carbonfive.com/2011/04/06/running-xcode-4-unit-tests-from-the-command-line/

此页面设置了最终在模拟器中运行的单元测试; 他继续说

单元测试构建目标的“运行脚本”构建阶段仅运行>“ $ {SYSTEM_DEVELOPER_DIR} / Tools / RunUnitTests”

我检查了一下,但是没有从Xcode 4执行RunPlatformUnitTests和RunUnitTests(为了确保重命名,我对脚本进行了重命名)。

2) http://longweekendmobile.com/2011/04/17/xcode4-running-application-tests-from-the-command-line-in-ios/

该页面从1)处移出,但仅针对模拟器构建,并未指定实际启动应用程序的方式。 它很好地描述了如何从命令行构建。

3) 调试从命令行构建的iOS应用

我在Xcode 4中看到的是构建阶段,该阶段终止于对应用程序进行签名和验证。 我接下来看到的是在设备上运行的gdb调试器。 但是,我不知道如何访问debugserver-我没有将iPhone越狱,因此我无法访问其中的任何内容,无论是debugserver还是IP地址。

我可以验证的是,从xcode4 / platforms / iPhoneOS.platform调用了gdb,因此远程调试器必须以某种方式将其自身附加到某物上。

对于命令行远程GDB(或仅上传到设备),您可以使用此小工具,选择最接近所需的fork,原始作者将不再支持它: https : //github.com/ghughes/fruitstrap

您可能无法原样使用它(我必须调整gdb参数以供使用),但这是一个好的开始。

您可以通过自动运行此脚本来进一步使事情自动化

for i in $(system_profiler SPUSBDataType | grep "Serial Number: " | grep -Po "[A-Za-z0-9]{40,}$") ; do
    echo "Installing on: $i"
    #use fruitstrap with device $i
end

这将仅检查所有USB端口,并仅保留当前已连接到iOS设备的端口,并返回其UDID。

从那里,您应该能够为您的应用程序使用几个不同的参数来自动化测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM