我正在尝试为某些iOS应用程序启动自动化测试解决方案。我正在使用fruitstrap将已编译的应用程序传输并安装到连接的iPhone上,但是我很难找到一种在安装完成后自动启动应用程序的方法。
Fruitstrap有一个在GDB调试器中运行应用程序的选项,它可以运行。不幸的是,有一些测试用例需要在没有连接调试器的情况下运行应用程序(特殊崩溃处理)。我花了很多时间搞砸了MobileDevice Library上可用的资源,而这正是Fruitstrap使用的,但是我无法启动应用程序。
有什么想法吗?
答案 0 :(得分:2)
您可以使用fruitstrap或Xcode启动“引导程序”,使目标应用程序通过Michael所描述的自定义URL运行,从而实现您的目的。
当引导程序在调试器下运行时,URL调用的程序将正常运行。
答案 1 :(得分:2)
创建一个引导程序并使用URL Schemes可能是某些人的选择,当然应该考虑,但它不符合我的要求。
我最终做的是通过fruitstrap启动带有调试器的应用程序。我重新编译了fruitstrap以包含以下准备命令(在GDB_PREP_CMDS定义中):
handle all noprint pass nostop
continue
句柄会将信号传递给程序,因此自定义信号处理程序(在这种情况下为崩溃处理程序)将处理信号。继续是我需要的,以便在调试器启动后应用程序实际运行。
这有一个不幸的缺陷,不幸的是我不知道解决方法。 ARM7版本的GDB没有像darwin版本那样的“set dont_handle_bad_access”命令。由于某些原因,将EXC_BAD_ACCESS信号传递给程序不起作用,应用程序挂起。这很重要,因为这是大多数崩溃的信号。但就目前而言,它是我能做的最好的,至少它处理未被捕获的异常。
答案 2 :(得分:1)
我相信您可能正在寻找某种自定义网址方案。
查看以下文档并向下滚动到:实施自定义URL方案
您还可以在iOS中使用Google URL Schemes来查看您是否遇到类似于您尝试执行的操作。
如果这有助于你,请告诉我。如果你有任何成功,那将会很有趣。
干杯。