Как запустить UIAutomation, Simulator и Xcode Debugger одновременно? - PullRequest
4 голосов
/ 17 декабря 2010

Может кто-нибудь указать мне на документацию о том, как заставить Instruments запускать сценарии UIAutomation и запускать приложение iPhone с отладчиком, запущенным в симуляторе?

Ограничения: У меня есть только оборудование iPhone 3g для тестирования и отладкиПротив устройства с UIAutomation просто не работает надежно.Обычно тестовые сценарии запускаются, чтобы убедиться, что все прошло, но теперь существует странная ошибка, которая срабатывает только при запуске сценария UIAutomation (что хорошо).Ошибка не может быть продублирована в ручном режиме.Похоже, что в любом случае нет возможности подключить Instruments UIAutomation к процессу, уже запущенному в симуляторе.Там нет выбора.Запуск инструментов UIAutomation напрямую не заставляет его запускаться с отладчиком.

Я бы предположил, что существует некоторая магия командной строки, которую можно настроить в инструментах редактирования активной цели (переменная среды, аргументы, рабочий каталог), чтобы сделатьэто случилось, но я не нашел магический параграф.

Спасибо, Нил

1 Ответ

4 голосов
/ 23 января 2012

Это тоже меня озадачило на некоторое время - тем более, что, когда выбран инструмент автоматизации, приложение «Инструменты» явно говорит: Current instrumentation disallows attach. Ключевым моментом является осознание того, что приложение, запущенное в симуляторе, отображается в вашей хост-системе как собственный процесс, поэтому подключение напрямую из GDB работает хорошо. Эти инструкции предназначены для XCode 4.2 (4C199) на Snow Leopard 10.6.8:

  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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...