我正在努力为一些iOS应用程序启动自动化测试解决方案.我正在使用fruitstrap将已编译的应用程序传输并安装到连接的iPhone上,但我很难找到一种在安装完成后自动启动应用程序的方法.
Fruitstrap有一个在GDB调试器中运行应用程序的选项,它可以运行.不幸的是,有一些测试用例需要在没有连接调试器的情况下运行应用程序(特殊崩溃处理).我花了很多时间搞砸了MobileDevice Library上可用的资源,而这正是Fruitstrap使用的,但是我没有能够在推出应用程序时做出任何改变.
有任何想法吗?
创建引导程序并使用 URL 方案对于某些人来说可能是一种选择,当然应该考虑,但它不符合我的要求。
我最终做的是通过fruitstrap 使用调试器启动应用程序。我重新编译了fruitstrap以包含以下准备命令(在GDB_PREP_CMDS定义中):
handle all noprint pass nostop
continue
Run Code Online (Sandbox Code Playgroud)
该句柄会将信号传递给程序,以便自定义信号处理程序(在本例中为崩溃处理程序)将处理该信号。我需要继续,以便应用程序在调试器启动后真正运行。
其中有一个不幸的缺陷,不幸的是我不知道解决方法。ARM7 版本的 GDB 没有像 darwin 版本那样的“set dont_handle_bad_access”命令。由于某种原因,将 EXC_BAD_ACCESS 信号传递给程序不起作用,并且应用程序挂起。这很重要,因为这是大多数崩溃的信号。但就目前情况而言,这是我能做的最好的事情,至少可以处理未捕获的异常。
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |