Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Crashlog links to which .dSYM

I have got many crash logs from different users, I have different builds and dSYM file now how can i make sure a particular crashlog belongs to which build and dSYM file.

Is there is any way to check if both crashlog and dSYM belongs to same build...??

Regards,

like image 504
Nilesh Avatar asked Apr 02 '12 13:04

Nilesh


People also ask

What is the use of dSYM file for Crashlytics?

By default, Firebase Crashlytics automatically processes your debug symbol (dSYM) files to give you deobfuscated and human-readable crash reports. This behavior is set when you add a run script that initializes Crashlytics to your app's build phase.

What is dSYM?

Role of dSYM (Debug SYMbol)dSYM files store the debug symbols for our app. It contains mapping information to decode a stack-trace into readable format. The purpose of dSYM is to replace symbols in the crash logs with the specific methods names so it will be readable and helpful for debugging the crash.


2 Answers

You have to archive the binary and the dSYM, since every build will create new ones each having an identical UUID.

You can use dwarfdump --uuid yourapp.app/yourapp and dwarfdump --uuid yourapp.app.dSYM to check the UUIDs of individual binaries.

To search for a dSYM with a specific UUID via Spotlight you can do: mdfind "com_apple_xcode_dsym_uuids == 5255A87A-B23C-3AE8-B367-14B49C21C1D6" Note that the UUID here is an example an written in uppercase and the format 8-4-4-4-12.

like image 149
Kerni Avatar answered Oct 20 '22 15:10

Kerni


Okay guys thanks for your replies, It helps me a lot. I have figured out the proper way of finding the relation between crashlog in dSYM file. I am sharing this with you:

So first of all keep all your crashlog and dSYM in a single directory and run following commands wich gives you UUIDS of your application and the UUID of crashlog if they match you good. And before running commands please make sure you are in the same folder where you have kept all this files.

First of all run command:

mdls YourApp.app.dSYM  

Which will give you following result(Sample):

com_apple_xcode_dsym_paths = ( "Contents/Resources/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 = "Package" kMDItemLogicalSize = 58267749 kMDItemPhysicalSize = 58273792

Now here you got the UUID (in bold) of your dSYMB file.

Now run following command:

grep "+YourApp" *crash 

This will results:

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

So in this result again you will find a 32 digit string(in bold) which is UUID of your applications binary. If this UUID match with your dSYM files UUID then they belongs to the same build.

This is all i have observed. I have up voted all the replies again thanks for replies keeps helping people good luck..:)

like image 23
3 revs, 2 users 99% Avatar answered Oct 20 '22 14:10

3 revs, 2 users 99%