Ссылки на Crashlog, на которые .dSYM

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

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

Привет,

Ответ 1

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

Итак, прежде всего держите все свои crashlog и 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 2-25 PM.crash: 0xe6000 - 0x8e9fff + YourApp armv7 < 9ad4bcafc84738b19055cf4221be2f65 > /var/mobile/Applications/A5870F65-2694-4A06-BBDE-8BCA709FB838/Bitzer.app/Bitzer

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

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

Ответ 2

Вам нужно архивировать двоичный файл и 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.

Ответ 3

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

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

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

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