Как подключить отладчик к приложению iOS после запуска?

102

У меня проблема, которую я устраняю, которая возникает очень редко и не возникает, когда у меня что-то работает под Xcode.

Можно ли запустить приложение в обычном режиме (например, из Springboard), пока не возникнет моя проблема, а затем подключить отладчик в этот момент?

Я бы предпочел сделать это без взлома, если это возможно.

Локслей
источник

Ответы:

125
  • Подключите ваше устройство, подключенное к вашему Mac
  • Отладка> Присоединить к процессу по PID или имени
  • В диалоговом окне введите имя вашего приложения, которое отображается в навигаторе отладки при запуске через Xcode.

Если приложение уже запущено, отладчик подключится к запущенному процессу. Если он не запущен, он будет ждать запуска приложения, а затем подключится.

Оле Бегеманн
источник
Оле, спасибо за ответ. Я искал способ сделать это. Когда я пытаюсь прикрепить отладчик, он выглядит так, как будто он присоединяется, но затем я получаю следующее сообщение: предупреждение: невозможно прочитать символы для / var / mobile / Applications / {GUID} / {APPNAME} .app / {APPNAME} (file not нашел). Когда я нажимаю кнопку «стоп» в XCode, приложение закрывается. Похоже, он не находит символы отладки, хотя строится в режиме отладки. Любые идеи?
Брайан
4
У меня проблема с файлом. Если он не запущен, он будет ждать запуска приложения, а затем подключится. часть. Не работает. Я использую имя процесса, чтобы дождаться вызова приложения. Я запускаю приложение на iPhone, но отладчик не понимает, что приложение запущено.
Джонни
1
@BrianV - вам нужно убедиться, что вы компилируете с -ggdb, если вы хотите иметь возможность подключаться к процессу.
itfische
4
Я согласен с Джонни; По моему опыту, это приложение работает на симуляторе, но не на реальном устройстве.
Джеймс Мур
4
ПРИМЕЧАНИЕ. В Xcode 5.0.1+ это Debug > Attach to Process > By Process Identifier (PID) or Name stackoverflow.com/a/20193088/175830
Джейсон Аксельсон,
117

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

  1. Запустите приложение в симуляторе и обратите внимание на имя в навигаторе отладки. введите описание изображения здесь

  2. Подключите свое устройство и не забудьте выбрать ваше устройство в качестве целевого. введите описание изображения здесь

  3. Отладка> Присоединить к процессу> По идентификатору процесса (PID) или имени введите описание изображения здесь
  4. Введите имя из шага 1 и прикрепите. Это должно быть все, что вам нужно сделать. введите описание изображения здесь
Адам Джонс
источник
8
У вас должно быть 1000 голосов за. Отладка того, что запускается через схему URL-адресов, может быть головной болью без этого хитрого трюка. Большое спасибо!
txulu
2
Мне жаль, что я не увидел этот ответ, прежде чем я потратил 20 минут на то, чтобы разобраться в этом самостоятельно :(
simon_smiley 01
7
Это работает в том смысле, что он присоединяется к процессу, но я не вижу, чтобы получить какой-либо вывод журнала, который мне действительно нужен. Любые идеи?
Орландо
2
@Orlando - Если вы ищете вывод журнала, я настоятельно рекомендую DeviceConsole: github.com/rpetrich/deviceconsole
orion elenzil
1
Я сделал именно то, что вы предложили. и я получаю сообщение об ошибке: Could not attach to PIDя попробовал и имя, и его идентификатор. Я пробовал, пока приложение запущено и пока оно остановлено ..
Дорогая,
49

В Xcode 5.0.1 и 6 это пункты строки меню:

Debug > Attach to Process > By Process Identifier (PID) or Name...
PiTheNumber
источник
7

В Xcode 7 это просто:

Debug > Attach to Process by PID or Name...
Япошки
источник