Przetwarzanie plików symboli w Xcode


285

Zastanawiałem się, czy ktoś może mi powiedzieć, co tak naprawdę robi Xcode, gdy mówi: „Przetwarzanie plików symboli” po podłączeniu urządzenia?

Zrzut ekranu


Musiałem czekać dość długo ... około 30 minut, a później instalacja zakończyła się powodzeniem. Może Mac potrzebuje czasu na rozpoznanie urządzenia.
Jayprakash Dubey

Odpowiedzi:


263

Pobiera symbole (debugowania) z urządzenia, dzięki czemu możliwe jest debugowanie na urządzeniach z tą konkretną wersją systemu iOS, a także symbolizowanie raportów o awariach, które miały miejsce w tej wersji systemu iOS.

Ponieważ symbole są specyficzne dla procesora, powyższe działa tylko wtedy, gdy zaimportowano symbole nie tylko dla określonego urządzenia z systemem iOS, ale także dla określonego typu procesora. Potrzebne obecnie typy procesorów to armv7 (np. IPhone 4, iPhone 4s), armv7s (np. IPhone 5) i arm64 (np. IPhone 5s).

Więc jeśli chcesz symbolizować raport o awarii, który miał miejsce na iPhonie 5 z armv7s i masz tylko symbole armv7 dla konkretnej wersji iOS, Xcode nie będzie w stanie (w pełni) symbolizować raportu o awarii.


19
Niedawno odkryłem, że Xcode nie będzie przetwarzał plików symboli ani z iPada2, ani iPhona4. Zawsze zatrzymywał się w połowie i nigdy nie był ukończony, nawet po pół godzinie. W końcu sprawiłem, że zadziałało ... wyłamując zupełnie nowy kabel połączeniowy i podłączając go bezpośrednio do mojego Maca Mini (wcześniej byłem podłączony za pomocą przedłużacza). Doszedłem do wniosku, że złe połączenie NAPRAWDĘ zadziera z aktualizacjami symboli.
Ash

5
Dlaczego więc nie połączyć tych symboli z rozkładem xcode? Po co męczyć się wyodrębnianiem ich z urządzenia?
Matthew Exon,

3
Symbole dla wszystkich architektur mają rozmiar większy niż 1 GB na wersję (iOS) i nie zawsze aktualizacja Xcode dla każdej wersji poprawki. Xcode jest aktualizowany tylko za pomocą aktualizacji / zmian API.
Kerni,

@VladimirDespotovic Co chcesz tutaj rozwiązać? To nie jest problem. Należy to zrobić, ponieważ debugger potrzebuje tych danych, a do symboliki awarii jest to również potrzebne. Pytanie również nie stanowiło problemu.
Kerni,

36

W Xcode w wersji 6.1.1 (6A2008a) po „Przetwarzaniu plików symboli” w folderze ~ / Library / Developer / Xcode / iOS DeviceSupport / utworzono folder zawierający symbole związane z urządzeniem (w tym wersję iOS i typ procesora):

wprowadź opis zdjęcia tutaj


6
co było w (null) (null)?
Anton Tropashko,

6
@AntonTropashko (null) ((null))faktycznie.
Alejandro Iván

6
W moim przypadku „(null) ((null))” zawierało ... nic!
Sjakelien

7
Ponieważ pliki Sym są pobierane w razie potrzeby, zniszczyłem większość folderów w tej lokalizacji. Uwolniłem ponad 24 gig na moim dysku SSD!
Sjakelien

@Sjakelien Folder dobrze oznakowany wtedy
Brad Thomas

19

xCode po prostu skopiuj wszystkie dzienniki awarii. Jeśli chcesz przyspieszyć: usuń liczbę raportów o awariach po ich przeanalizowaniu, bezpośrednio w tym oknie.

Devices -> View Device Logs -> All Logs

zrzut ekranu


@QLiu Sure. Wygląda na to, że błąd lub dzienniki są większe niż oczekiwano.
WINSergey,

Jak uzyskać dostęp do tych dzienników? (Mam 0 doświadczenia z xCode)
Ben

@Ben Window -> Urządzenia -> Wybierz swoje urządzenie po lewej stronie -> gotowe
WINSergey

4

W moim przypadku symbolizacja trwała wiecznie. Wymuszam ponowne uruchomienie telefonu za pomocą przycisku wł. / Wył. I przycisku Home. Teraz szybko skończyłem symbolizować i zaczynam uruchamiać moją aplikację za pomocą xcode.


1

Wiem, że to nie jest rozwiązanie techniczne, ale mój iPhone był podłączony do komputera kablem, a odłączenie urządzenia od komputera i ponowne podłączenie go (ponownie kablem) działało dla mnie, ponieważ nie mogłem go rozwiązać za pomocą rozwiązań, które są dostarczone wcześniej.


Może to być szczęśliwy czas ... lub opóźniona reakcja na inne działania, które podjąłeś. Odłączyłem się i ponownie połączyłem, a on wrócił do tego trybu, aż do końca.
Paul Masri-Stone

0

Porównuje dzienniki awarii pobrane z urządzenia do zarchiwizowanej (symbolizowanej jako poprawnej) wersji aplikacji, aby spróbować pobrać miejsce w kodzie, w którym nastąpiła awaria.

Sprawdź lokalizację pliku symbolu xcode, aby uzyskać szczegółowe informacje


0

Irytujący błąd. Rozwiązałem go, podłączając kabel bezpośrednio do iPada. Z jakiegoś powodu proces ten nigdy się nie skończyłby, gdybym miał iPada w podstawce Apple.


3
To błąd, ponieważ NIGDY nie ukończyłbym, gdybym miał go na stojaku.
GoldenJoe

2
Uznaję odpowiedź jest słabo wyrażone, ale to było rzeczywiście dla mnie, łącząc się bezpośrednio do portu USB rozwiązane dla mnie, pomimo koncentrator USB było dobrze działa na jakiekolwiek inne zadanie
Jalone

0

Dodaj wersję SDK odpowiadającą Twojemu iPhone'owi iOS, np .: iOS 10.3

ścieżka:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport


Pobieranie. Po zakończeniu wszystko będzie w porządku. Jak pokazano na rysunku:

wprowadź opis zdjęcia tutaj

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.