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?
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?
Odpowiedzi:
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.
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):
(null) ((null))
faktycznie.
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
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.
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.
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
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.