2012-07-09 124 views
8

我正在尝试为某些iOS应用程序启动自动测试解决方案。我正在使用fruitstrap将已编译的应用程序传输并安装到已连接的iPhone上,但我正在努力寻找一种在安装完成后自动启动应用程序的方法。在系留iPhone上启动已安装的应用程序

Fruitstrap有一个选项可以在GDB调试器中运行该应用程序,该应用程序可以工作。不幸的是,有一些测试用例需要在没有附加调试器的情况下运行应用程序(特殊的崩溃处理)。我花了很多时间在MobileDevice Library上提供的资源上,这是Fruitstrap使用的资源,但我一直无法启动任何应用程序启动。

任何想法?

+0

这个设备是越狱吗,或者你可以越狱它来解决这个问题?你可以使用Wifi通信,还是仅限于USB系绳通信? – Nate 2012-07-10 08:48:09

+0

该设备不能越狱。 Wifi是一种选择,但不是首选。 – BlueVoid 2012-07-10 15:51:48

回答

2

创建引导程序并使用URL Schemes可能是某些人的选择,当然应该考虑,但它不符合我的要求。

我最终做的是用调试器通过fruitstrap启动应用程序。我重新编译fruitstrap以包括以下预备命令(在GDB_PREP_CMDS定义):

handle all noprint pass nostop 
continue 

手柄将通过信号到程序,以便定制信号处理程序(在这种情况下崩溃处理)将处理信号。 continue是我需要的,所以一旦调试器启动,应用程序就会运行。

这里有一个不幸的缺陷,遗憾的是我不知道解决方法。 GDB的ARM7版本没有像达尔文版本那样的'set dont_handle_bad_access'命令。出于某种原因传递EXC_BAD_ACCESS信号到程序不起作用,应用程序挂起。这很重要,因为这是大多数崩溃的信号。但就目前而言,它是我能做的最好的事情,至少它处理的是未捕获的异常。

1

我相信你可能正在寻找某种自定义URL方案。

看一看下面的文件,向下滚动到:实现自定义URL方案

http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html

您还可以在iOS版谷歌URL Schemes看到,如果你遇到类似的东西,你正在尝试做。

让我知道这是否帮助你。如果你有成功,听听会很有趣。

干杯。

+0

URLSchemes是一个聪明的想法,但我不确定它对我来说是一个可行的解决方案。我需要能够直接从设备绑定到的计算机启动应用程序,并且我相信URLSchemes只能在设备上的其他应用程序中使用。 – BlueVoid 2012-07-16 16:59:17

2

您可以通过使用fruitstrap或Xcode来启动一个“引导程序”程序,使您的目标应用程序通过迈克尔描述的自定义URL运行。

虽然引导程序将在调试器下运行,但URL调用的程序将正常运行。

+0

虽然这是一个有价值的想法,但不幸的是它不是我的选择。我无法修改要启动的应用程序的源代码以包含URL处理程序。同时安装引导程序以及要测试的应用程序的开销太大。 – BlueVoid 2012-07-17 18:45:27

相关问题