9

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

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

有任何想法吗?

4

3 回答 3

2

您可以通过使用fruitstrap 或Xcode 来启动“引导”程序来做您想做的事情,该程序会导致您的目标应用程序通过Michael 所描述的自定义URL 运行。

当引导程序将在调试器下运行时,URL 调用的程序将正常运行。

于 2012-07-17T07:22:31.467 回答
2

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

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

handle all noprint pass nostop
continue

句柄会将信号传递给程序,因此自定义信号处理程序(在这种情况下为崩溃处理程序)将处理信号。continue 是我需要的,以便在调试器启动后应用程序真正运行。

这有一个不幸的缺陷,不幸的是我不知道解决方法。GDB 的 ARM7 版本没有 darwin 版本的“set dont_handle_bad_access”命令。由于某种原因,将 EXC_BAD_ACCESS 信号传递给程序不起作用并且应用程序挂起。这很重要,因为这是大多数崩溃的信号。但就目前而言,它是我能做的最好的,至少它处理未捕获的异常。

于 2012-07-17T18:55:13.417 回答
1

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

查看以下文档并向下滚动到:实现自定义 URL 方案

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

您还可以在 iOS 中搜索URL 方案,看看您是否遇到了与您正在尝试做的类似的事情。

让我知道这是否对您有所帮助。如果你有任何成功的话会很有趣。

干杯。

于 2012-07-16T07:51:27.613 回答