如何同时运行UIAutomation、模拟器和Xcode调试器?

4
有人能指导我如何使用Instruments运行UIAutomation脚本并在Simulator中启动带有调试器的iPhone应用程序的文档吗?
限制: 我只有iPhone 3g硬件进行测试,并且使用UIAutomation对设备进行调试不可靠。 通常,测试脚本只是用来确保一切都通过了,但现在存在一个怪异的错误,只有当UIAutomation脚本运行时才会触发(这是一件好事)。无法通过手动操作复制此错误。 似乎没有办法将Instruments UIAutomation附加到已在模拟器中运行的进程上。没有选择。 直接启动Instruments UIAutomation不会导致它以调试器启动。
我认为可以在Instruments编辑活动目标时配置某些命令行魔术(环境变量、参数、工作目录)来实现这一点,但我还没有找到这个魔术段落。
谢谢, 尼尔
1个回答

4
这也曾困扰过我一段时间--特别是因为在选择Automation Instrument时,Instruments应用程序明确地说“当前的检测仪器不允许附加”。关键在于要意识到运行在模拟器中的应用程序在您的主机系统中可见作为其自己的进程,所以直接从GDB附加是有效的。以下说明适用于Snow Leopard 10.6.8上的XCode 4.2 (4C199):
  1. 按照您通常的方式在Instruments中启动您的测试(直接从Instruments启动或从Xcode 4的“产品->配置文件”中启动)。选择任何模板和脚本来启动您的自动化测试。
  2. 回到Xcode,在菜单“产品->附加到进程”下,您应该看到您的iOS应用程序按名称列出,以及您主机计算机上的所有其他应用程序。实际上,它很可能会被列为第一个,在部分标题“可能的目标”下。
  3. 如果它不可见,请选择“查看->调试区域->显示调试区域”以便您可以看到gdb控制台。
  4. 点击暂停按钮(“产品->调试->暂停”)以中断您的程序。像平常一样设置断点,检查。
那么下一个问题是:为什么我在调试器控制台中看不到我的普通NSLog()输出? 您的应用程序已经将自己绑定到控制台输出流,因此查找其输出的最简单的地方是在OS X控制台应用程序(/Applications/Utilities/Console.app)中,在“数据库搜索->所有消息”下查看。

这真是太棒了!感谢你,ckhan! - Salman Hasrat Khan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接