Crashlog ссылки на который .dSYM - PullRequest
14 голосов
/ 02 апреля 2012

У меня есть много журналов сбоев от разных пользователей, у меня разные сборки и файл dSYM, теперь как я могу убедиться, что к какому файлу сборки и dSYM относится определенный журнал сбоев.

Есть ли способ проверить, принадлежит ли как crashlog, так и dSYM одной сборке ... ??

С уважением,

Ответы [ 3 ]

21 голосов
/ 03 апреля 2012

Вам необходимо заархивировать двоичный файл и dSYM, поскольку каждая сборка будет создавать новые, каждый из которых будет иметь идентичный UUID.

Вы можете использовать dwarfdump --uuid yourapp.app/yourapp и dwarfdump --uuid yourapp.app.dSYM для проверки UUID отдельных двоичных файлов.

Для поиска dSYM с определенным UUID через Spotlight вы можете сделать: mdfind "com_apple_xcode_dsym_uuids == 5255A87A-B23C-3AE8-B367-14B49C21C1D6" Обратите внимание, что здесь приведен пример UUID, написанный в верхнем регистре и в формате 8-4-4-4-12.

18 голосов
/ 09 сентября 2012

Хорошо, ребята, спасибо за ваши ответы, это мне очень помогает. Я выяснил правильный способ найти связь между crashlog в файле dSYM. Я делюсь этим с вами:

Итак, прежде всего, храните все ваши крашлог и dSYM в одном каталоге и запускайте следующие команды, которые дают вам UUIDS вашего приложения и UUID crashlog, если они вам подходят. И перед запуском команд, пожалуйста, убедитесь, что вы находитесь в той же папке, где вы сохранили все эти файлы.

Сначала запустите команду:

mdls YourApp.app.dSYM  

Что даст вам следующий результат (образец):

com_apple_xcode_dsym_paths = ( "Содержание / Ресурсы / DWARF / YourApp" ) com_apple_xcode_dsym_uuids = ( "9AD4BCAF-C847-38B1-9055-CF4221BE2F65" ) kMDItemContentCreationDate = 2012-08-27 08:42:40 +0000 kMDItemContentModificationDate = 2012-08-27 08:42:40 +0000 kMDItemContentType = "com.apple.xcode.dsym" kMDItemContentTypeTree = ( "Com.apple.xcode.dsym", "Com.apple.package", "Public.directory", "Public.item" ) kMDItemDateAdded = 2012-09-06 11:30:37 +0000 kMDItemDisplayName = "Yourapp.app.dSYM" kMDItemFSContentChangeDate = 2012-08-27 08:42:40 +0000 kMDItemFSCreationDate = 2012-08-27 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 = "" kMDItemKind = "Пакет" kMDItemLogicalSize = 58267749 kMDItemPhysicalSize = 58273792

Теперь у вас есть UUID (выделен жирным шрифтом) вашего файла dSYMB.

Теперь выполните следующую команду:

grep "+YourApp" *crash 

Это приведет к:

YourApp 8-27-12 14-25 PM.crash: 0xe6000 - 0x8e9fff + YourApp armv7 <9ad4bcafc84738b19055cf4221be2f65> / var / mobile / Applications / A5870F65-2694-4A06-BBDE-8BCA9B9. app / Bitzer

Таким образом, в этом результате вы снова найдете 32-значную строку (выделена жирным шрифтом), которая является UUID двоичного кода ваших приложений. Если этот UUID совпадает с UUID ваших dSYM-файлов, то они принадлежат одной сборке.

Это все, что я наблюдал. Я снова проголосовал за все ответы, спасибо за ответы продолжает помогать людям удачи ..:)

2 голосов
/ 02 апреля 2012

Вы должны заархивировать свой dSYM после того, как создали файл .app.Каждая сборка, даже с одним и тем же источником, может создавать совершенно другой файл dSYM.

У вас есть уникальное имя для вашего файла .app, которое включает номер версии?Если это так, то это имя будет в вашем журнале сбоев в строке 5 рядом с путем:.

Кроме этого, я не думаю, что существует какой-либо другой способ связать одно с другим.

Привыкайте сохранять файл dSYM в каждом выпуске.Я полагаю, что вы можете сделать это с архивом XCode - но я, как правило, делаю выпуски своего магазина приложений из автоматизированного инструмента командной строки, поэтому я не использую эту функцию.

...