4

谁能告诉我有关如何使 Instruments 运行 UIAutomation 脚本并使用在模拟器中运行的调试器启动 iPhone 应用程序的文档?

约束:我只有 iPhone 3g 硬件来测试和调试 UIAutomation 的设备只是不能可靠地工作。通常测试脚本只是运行以确保一切通过,但现在存在一个奇怪的错误,只有在 UIAutomation 脚本运行时才会触发(这是一件好事)。该错误不能在手动操作中重复。似乎没有办法将 Instruments UIAutomation 附加到已经在模拟器中运行的进程。没有选择。直接启动 Instruments UIAutomation 不会导致它与调试器一起启动。

我假设可以在 Instruments 编辑活动目标(环境变量、参数、工作目录)中配置一些命令行魔法来实现这一点,但我还没有找到魔法段落。

谢谢,尼尔

4

1 回答 1

4

这已经让我难过了一段时间 - 特别是因为选择自动化仪器时,仪器应用明确说明Current instrumentation disallows attach。关键是要意识到在模拟器中运行的应用程序在您的主机系统中作为自己的进程可见,因此直接从 GDB 附加效果很好。这些说明适用于 Snow Leopard 10.6.8 上的 XCode 4.2 (4C199):

  1. 在 Instruments 中开始您的测试,无论您通常做什么(直接从 Instruments 或从 Xcode 4 的Product -> Profile. 选择任何模板和脚本来进行自动化测试。

  2. 回到 Xcode,在菜单下Product -> Attach to Process,您应该会看到按名称列出的 iOS 应用程序,以及主机上的所有其他应用程序。事实上,它很可能会在第一个部分标题下列出Likely Targets

  3. 如果它不可见,请选择View -> Debug Area -> Show Debug Area以便您可以看到 gdb 控制台。

  4. 点击暂停按钮 ( Product -> Debug -> Pause) 以中断您的程序。像往常一样设置断点,检查。

NSLog()然后下一个问题是:为什么我在调试器控制台中看不到我的正常输出?您的应用程序已经将自己绑定到控制台输出流,因此查找其输出的最简单位置是在 OS X 控制台应用程序 ( /Applications/Utilities/Console.app) 中并在DATABASE SEARCHES -> All Messages.

于 2012-01-22T21:45:12.313 回答