2012-04-02 12 views
11

Mam wiele dzienników awarii od różnych użytkowników, mam różne kompilacje i plik dSYM, teraz jak mogę upewnić się, że konkretny dziennik awarii należy do którego kompilacji i pliku dSYM.Łącza do Crashlog, do których należy .dSYM

Czy istnieje sposób sprawdzenia, czy oba crashlog i dSYM należą do tej samej kompilacji ... ??

Pozdrawiam,

Odpowiedz

15

Okay, dziękuję za twoje odpowiedzi, bardzo mi to pomaga. Znalazłem właściwy sposób na znalezienie związku między crashlogiem w pliku dSYM. Dzielę się tym z Tobą:

Przede wszystkim przechowuj wszystkie wpisy z crashlog i dSYM w jednym katalogu i uruchamiaj następujące polecenia, które dają UUIDS Twojej aplikacji i identyfikator UUID awarii, jeśli dobrze pasują do ciebie. Przed uruchomieniem komend upewnij się, że jesteś w tym samym folderze, w którym przechowujesz wszystkie te pliki.

Przede wszystkim polecenia uruchomienia:

mdls YourApp.app.dSYM 

Który daje następujący wynik (próbka):

com_apple_xcode_dsym_paths = ( "Contents/Resources/KARŁOWATA/YourApp" ) com_apple_xcode_dsym_uuids = ( "9AD4BCAF-C847-38B1-9055-CF4221BE2F65" ) kMDItemContentCreationDate = 2012-08-27 08:42:40 +0000 kMDItemContentModificationDate = 27.08.2012 08:42:40 +0000 kMDItemContentType = "com.apple.xcode.dsym" kMDItemContentTypeTree = ( "com.apple.xcode.dsym" "com.apple.package" , "public.directory" "public.item" ) kMDItemDateAdded = 6/09/2012 11:30:37 +0000 kMDItemDisplayName = „Yourapp.app.dSYM” kMDItemFSContentChangeDate = 27.08.2012 08:42:40 +0000 kMDItemFSCreationDate = 27.08.2012 08:42:40 +0000 kMDItemFSCreatorCode = "" kMDItemFSFinderFlags = 0 kMDItemFSHasCustomIcon = 0 kMDItemFSInvisible = 0 kMDItemFSIsExtensionHidden = 0 kMDItemFSIsStationery = 0 kMDItemFSLabel = 0 kMDItemFSName = "YourApp.app.dSYM" kMDItemFSNodeCount = 1 kMDItemFSOwnerGroupID = 20 kMDItemFSOwnerUserID = 501 kMDItemFSSize = 58267749 kMDItemFSTypeCode = "" KMD ItemKind = "Pakiet" kMDItemLogicalSize = 58267749 kMDItemPhysicalSize = 58273792

Teraz tutaj masz UUID (pogrubione) swojego pliku dSYMB.

Teraz uruchom następujące polecenie:

grep "+YourApp" *crash 

Będzie to wyniki:

YourApp 27.08.12 2-25 PM.crash: 0xe6000 - 0x8e9fff + YourApp ARMv7 < 9ad4bcafc84738b19055cf4221be2f65>/var /mobile/Applications/A5870F65-2694-4A06-BBDE-8BCA709FB838/Bitzer.app/Bitzer

Tak więc w tym wyniku ponownie znajdziesz 32-cyfrowy ciąg (pogrubiony), który jest UUID Twojej aplikacji binarnej. Jeśli ten identyfikator UUID jest zgodny z Twoim UUID plików dSYM, to należy do tej samej wersji.

To wszystko, co zaobserwowałem. Ponownie głosowałem na wszystkie odpowiedzi, dzięki za odpowiedzi pomaga ludziom powodzenia .. :)

+0

Dzięki. Mam pytanie uzupełniające, ponieważ muszę znaleźć konkretny dSYM z dużej kupki plików .xcarchive: http://stackoverflow.com/q/21297928/129202 – Jonny

2

Miałeś archiwizowanie dSYM po utworzeniu pliku .app. Każda kompilacja, nawet z tego samego źródła, może wytworzyć zupełnie inny plik dSYM.

Czy masz unikalną nazwę pliku .app, która zawiera numer wersji? Jeśli tak, nazwa będzie znajdować się w dzienniku awarii przy linii 5 obok Ścieżki :.

Poza tym, nie sądzę, że istnieje jakakolwiek inna wbudowana w sposób umożliwiający powiązanie jednego z drugim.

Nabierz zwyczaju zapisywania pliku dSYM w jednym wydaniu. Sądzę, że możesz to zrobić z archiwum Xcode - ale zazwyczaj robię moje wydania w sklepie z aplikacjami za pomocą automatycznego narzędzia wiersza poleceń, więc nie używam tej funkcji.

+0

Dziękuję za odpowiedź. Jesteś absolutnie poprawny, ale pracuję nad starszym kodem, a kompilacje są już rozproszone, mam pewne pojęcie o uzyskaniu UUID z crashlog, jak również UUID pliku dSYM, ale nie jestem w 100% pewny, że jest to popraw poprawkę. – Nilesh

18

Musisz zarchiwizować plik binarny i dSYM, ponieważ każda kompilacja tworzy nowe, z których każda ma identyczny identyfikator UUID.

Możesz użyć dwarfdump --uuid yourapp.app/yourapp i dwarfdump --uuid yourapp.app.dSYM, aby sprawdzić UUID poszczególnych plików binarnych.

Aby wyszukać dSYM z konkretnym UUID poprzez Spotlight można zrobić: mdfind "com_apple_xcode_dsym_uuids == 5255A87A-B23C-3AE8-B367-14B49C21C1D6" Zauważ, że tutaj jest UUID PRZYKŁAD pisane wielkimi literami i formacie 8-4-4-4-12.

+0

Świetne rzeczy, dziękuję za odpowiedź, więc chcę sprawdzić, czy dziennik awarii pasuje do pliku kompilacji i dSYM. Dzięki – Nilesh

+1

Kocham cię bardzo za porady dotyczące Spotlight! – Martin

Powiązane problemy