2010-04-23 19 views
13

nie mogę zarządzać aby mój kod symbolicated ... Czytałem część „poniżej”:Symbolicate adhoc iphone app awarii

Biorąc pod uwagę raport wypadku, dopasowując binarny, a jego plik .dSYM , Symbolizowanie jest stosunkowo łatwe. Okno organizatora Xcode Organizer ma zakładkę do raportów o awariach z aktualnie wybranego urządzenia . Możesz zobaczyć zewnętrznie otrzymane raporty o awariach w tej zakładce - po prostu umieść je w odpowiednim katalogu. Jest to , taki sam jak katalog Mac OS X opisany w pierwszej sekcji. To nie ma znaczenia, które urządzenie posiadasz na uwięzi, ale katalog, w którym umieścisz raport awarii, musi być katalogiem dla wybranego urządzenia podłączonego na stałe i podłączonego do sieci.

Nie jest konieczne umieszczanie pliku binarnego i .dSYM w konkretnej lokalizacji. Xcode używa Spotlight i UUID, aby zlokalizować poprawne pliki . Konieczne jest jednak, aby oba pliki znajdowały się w tym samym katalogu , a katalog ten jest taki, który jest indeksowany przez Spotlight. Gdziekolwiek w twoim katalogu domowym powinno być w porządku.

Ale to nie działa dla mnie ... tutaj jest to, co robiłam:

  • Otworzyłem Xcode organizator i miałem urządzenie iPhone z bali zderzeniowych
  • aplikacji i dsym pliki są w moim projekcie xcode, który jest na moim pulpicie

Cała reszta powinna być automatyczna, prawda? ale dzienniki awarii nie są jeszcze symbolizowane ...

Wszelkie uwagi są mile widziane.

Pozdrawiam.

Gotye.

+0

Are .app i .dSYM plików masz na pulpicie dokładnie te, które zostały wygenerowane w momencie zbudowany plik binarny ad hoc? Każda zmiana, nawet niewielka, może zakłócić proces symbolizacji. –

Odpowiedz

8

W celu symbolicate swoje zgłoszenie awarii, spróbuj tego podejścia:

(a) Odszukaj symbolicator (/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/ a/Resources/symbolicatecrash)

(b) Otwórz terminal i przeciągnąć ten plik (tak, że ścieżka zostanie skopiowany prawidłowo)

(c) Uruchom polecenie podobne /Developer/Platforms/iPhoneOS.platform/Developer/ Biblioteka/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolic atorcrash .crash.app (wymienić całą ścieżkę raportu katastrofy i plik app)

raport

(d) Symbolicated krach pokaże się

+0

Ten sam raport o awarii, który otrzymuję w dziennikach urządzeń w Organizatorze, otrzymuję za pomocą Twojej metody. Czemu? –

+0

dla mnie, dodając jawną ścieżkę do .app assist; podczas gdy Xcode (od wersji 4.2 myślę) musiał to pominąć - otrzymuję nie symboliczne awarie dla moich aplikacji w Xcode. – kender

+0

@kender: jak już wspomniałem, należy wspomnieć o całej ścieżce zarówno aplikacji, jak i raportu o awariach, pomylony z niezidentyfikowanym bitem raportu, której wersji Xcode używasz? –

5

Kroki przeanalizować zgłoszenie awarii od Apple:

  1. Skopiuj uwalnianiu Plik .app, który został przekazany do sklepu appstore, plik .dSYM, który został utworzony w momencie wydania, a raport o awariach otrzymuje od APPLE do FOLDER.

  2. otwartej aplikacji Terminal i przejdź do folderu utworzonego powyżej (za pomocą polecenia CD)

  3. Atos -arch ARMv7 -o '(nazwa pliku .app tutaj)'/'(. DSYM pliku tutaj)' (lokalizacja pamięci w raporcie o awarii, w którym nastąpiła awaria). Lokalizacja pamięci powinna być tą, w której aplikacja uległa awarii zgodnie z raportem.

Ex: Atos -arch ARMv7 -o 'app name.app'/'nazwa aplikacji' 0x0003b508

To pokaże dokładną linię, nazwa metody, które doprowadziły do ​​katastrofy.

Dzięki

+0

To nie to samo, co symbolizowanie całego raportu awarii. Daje to odpowiedni symbol dla pojedynczego adresu. –

+0

@DaveCameron Tak, powyższe zrobiło tylko to, ale jeśli jest używane bez adresu, pozwala analizować wiele lokalizacji, przesyłając adres jeden po drugim. http://stackoverflow.com/questions/1460892/symbolicating-iphone-app-crash-reports/4954949#4954949 –

12

mam zmaga się z tym od kilku dni i wreszcie zdobione. Nie mogłem uzyskać symbolicznych dzienników z jakiejkolwiek zarchiwizowanej aplikacji zainstalowanej na moim telefonie. Dla mnie był to problem z ustawieniami kompilacji, chociaż zauważyłem, że był on w stanie symbolizować dzienniki z niektórych starszych wersji, jak również po wykonaniu tych kroków. YMMV może się różnić w dziennikach awarii od starszych wersji. Po wykonaniu tych kroków w Xcode 4.0.1 na iOS 4.3.1 mogłem uzyskać symboliczne dzienniki.

W nawigatorze projektu Xcode kliknij projekt, a następnie kliknij Ustawienia kompilacji. Podczas archiwizowania aplikacji Xcode domyślnie używa konfiguracji Release. Będziesz chciał ustawić następujące wartości tylko dla konfiguracji Release, musisz więc rozszerzyć wszelkie ustawienia, które nie zostały jeszcze rozwinięte, abyś mógł ustawić to na podstawie konfiguracji.

Sprawdź, wartości te są dla konfiguracji Release:

  • generowania symboli debugowania: Tak
  • Debug Informacja Format: Krasnal z dSYM File
  • Postprocessing Wdrożenie: Tak
  • Strip połączonego produktu: Tak
  • Użyj osobnego paska: Tak
  • Symbole debugowania paska podczas kopiowania: nr
  • Strip Styl: Wszystkie symbole

Gdy te są ustawione, Archive i ponowna instalacja aplikacji. Nowe raporty o awariach wygenerowane z wynikowego archiwum powinny być poprawnie symbolizowane. Dla mnie wiele starych raportów o awariach również jest poprawnie symbolizowanych po wykonaniu tych kroków, chociaż nie jestem pewien, jak dokładne byłyby wyniki, gdyby kompilacje były bardzo różne.

Dla porównania, pomyślałem, to wszystko się po przestudiowaniu tej strony: http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html

Ja również znaleźć na tej stronie, co jest przydatne, jeśli próbujesz dowiedzieć się, co dana ustawienie build robi: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

Mam nadzieję, że to pomoże!

Dan

+0

Generowanie Debugowania - Tak, Debugowanie informacji Dwarf + dSym, Strip Debugowanie Durig Kopiowanie Nie, Strip Style All, wszystkie są ustawione jak to domyślnie. Ustawienie instalacji Przetwarzanie końcowe i produkt związany z taśmą nie miały dla mnie żadnego wpływu. Używanie oddzielnego paska jest tym, co sprawiło, że działa !!! Dziękuję Ci – dizy