Jak dołączyć debugger do aplikacji na iOS po uruchomieniu?


101

Mam problem, który rozwiązuję, który pojawia się bardzo rzadko i nie wydaje się występować, gdy coś działa w Xcode.

Czy można normalnie uruchamiać aplikację (np. Ze Springboard) do momentu wystąpienia mojego problemu, a następnie dołączyć debugger w tym momencie?

Wolałbym to zrobić bez jailbreakingu, jeśli to możliwe.

Odpowiedzi:


124
  • Podłącz urządzenie podłączone do komputera Mac
  • Debuguj> Dołącz do procesu według PID lub nazwy
  • W arkuszu dialogowym wprowadź nazwę aplikacji wyświetlaną w nawigatorze debugowania po uruchomieniu za pomocą Xcode.

Jeśli aplikacja jest już uruchomiona, debugger połączy się z uruchomionym procesem. Jeśli nie jest uruchomiona, będzie czekać na uruchomienie aplikacji, a następnie się załączy.


Ole, dzięki za odpowiedź. Szukałem sposobu, aby to zrobić. Kiedy idę dołączyć debuger, wygląda na to, że się załącza, ale pojawia się ten komunikat: ostrzeżenie: nie można odczytać symboli dla / var / mobile / Applications / {GUID} / {APPNAME} .app / {APPNAME} (plik nie znaleziony). Kiedy naciskam przycisk „stop” w XCode, aplikacja kończy działanie. Wygląda na to, że nie znajduje symboli debugowania, chociaż jest budowany w trybie debugowania. Jakieś pomysły?
— Brian

4
Mam problem z aplikacją Jeśli nie jest uruchomiona, będzie czekać na uruchomienie aplikacji, a następnie się załączy. część. To nie działa. Używam nazwy procesu, aby czekać, aż aplikacja zadzwoni. Uruchamiam aplikację na iPhonie, ale debugger nigdy nie zdaje sobie sprawy, że aplikacja została uruchomiona.
— Jonny,

1
@BrianV - musisz się upewnić, że kompilujesz z -ggdb, jeśli chcesz mieć możliwość dołączenia do procesu.
— itfische

4
Zgadzam się z Jonnym; z mojego doświadczenia wynika, że ​​załącznik działa na symulatorze, ale nie łączy się z rzeczywistym urządzeniem.
— James Moore,

4
UWAGA: W Xcode 5.0.1+ jest to Debug > Attach to Process > By Process Identifier (PID) or Name stackoverflow.com/a/20193088/175830
— Jason Axelson,

117

Zostawię to tutaj, ponieważ żadna z pozostałych 2 odpowiedzi nie dała mi wystarczająco dużo szczegółów bez odrobiny wysiłku.

  1. Uruchom aplikację w symulatorze i zanotuj nazwę w nawigatorze debugowania wprowadź opis obrazu tutaj

  2. Podłącz swoje urządzenie i nie zapomnij wybrać swojego urządzenia jako celu wprowadź opis obrazu tutaj

  3. Debuguj> Dołącz do procesu> Według identyfikatora procesu (PID) lub nazwy wprowadź opis obrazu tutaj
  4. Wprowadź nazwę z kroku 1 i dołącz. To powinno być wszystko, co musisz zrobić. wprowadź opis obrazu tutaj

8
Powinieneś mieć 1000 głosów za. Debugowanie rzeczy, które zaczynają się od schematu url, może być uciążliwe bez tej zgrabnej sztuczki. Wielkie dzięki!
— txulu

2
Żałuję, że nie zobaczyłem tej odpowiedzi, zanim spędziłem 20 minut na samodzielnym
— rozwiązywaniu tego

7
Działa to w ten sposób, że dołącza się do procesu, ale nie widzę żadnych danych wyjściowych dziennika, których naprawdę potrzebuję. Jakieś pomysły?
— Orlando

2
@Orlando - Jeśli szukasz danych wyjściowych dziennika, bardzo polecam DeviceConsole: github.com/rpetrich/deviceconsole
— orion elenzil

1
Zrobiłem dokładnie tak, jak sugerowałeś. i pojawia się błąd: Could not attach to PIDwypróbowałem zarówno nazwę, jak i jej identyfikator. Próbowałem, gdy aplikacja jest uruchomiona i gdy jest zatrzymana ...
— Kochanie,

49

W Xcode 5.0.1 i 6 są to elementy paska menu:

Debug > Attach to Process > By Process Identifier (PID) or Name...

7

W Xcode 7 jest po prostu:

Debug > Attach to Process by PID or Name...
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.