2010-12-17 30 views
4

任何人都可以指向我有关如何使仪器运行UIAutomation脚本并启动iPhone应用程序与在模拟器中运行的调试器的文档?如何获得UIAutomation,Simulator和Xcode Debugger同时运行?

限制条件: 我只有iPhone 3g硬件才能与UIAutomation一起测试并调试设备,但无法正常工作。 正常情况下,测试脚本只是运行以确保所有内容都通过,但现在存在一个奇怪的错误,只有在UIAutomation脚本运行时才会触发(这是一件好事)。该错误不能在手动操作中复制。 似乎无论如何都要将Instruments UIAutomation附加到已在仿真器中运行的过程。没有选择。 启动仪器UIAutomation直接不会导致它启动调试器。

我会假设有一个可以在仪器编辑活动目标进行配置(环境变量,参数,工作目录)来做到这一点一些命令行魔术,但我还没有发现魔术的段落。

感谢, 尼尔

回答

4

这难倒我了一会儿,太 - 特别是当选择了自动化仪表以来,该仪器中的应用明确地说:Current instrumentation disallows attach。关键是要认识到,在模拟器中运行的应用程序作为其自己的进程在主机系统中可见,因此直接从GDB进行连接运行良好。这些指令是在Snow Leopard上的XCode 4.2(4C199)10.6.8:

  1. 在仪器启动测试,但是你通常做的(可以直接从仪器,或在Xcode 4的Product -> Profile选择任何模板和脚本。回到Xcode,在菜单Product -> Attach to Process下,你应该看到你的iOS应用程序(按名称列出)以及你主机上的所有其他应用程序,事实上,它很可能会被列出来首先,部分标题Likely Targets

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

  3. 按下暂停键(Product -> Debug -> Pause)打断你的计划。设置断点,像往常一样检查。

那么接下来的问题就是:为什么我看不到我的正常NSLog()输出在调试器控制台? 您的应用程序已经绑定自己的控制台输出流,因此寻找其输出的最简单的地方是在OS X控制台应用程序(/Applications/Utilities/Console.app)和DATABASE SEARCHES -> All Messages下看。

+0

这是惊人的!谢谢你这个ckhan! – 2014-01-17 18:12:09

相关问题