Как запустить UIAutomation, Simulator и Xcode Debugger одновременно?

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

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

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

Спасибо нил

1 ответ

Решение

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

  1. Начните свой тест в Инструментах, как вы обычно делаете (либо непосредственно из Инструментов, либо из Xcode 4's 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,

Другие вопросы по тегам