Crashlog links to which .dSYM
Asked Answered
E

3

15

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,

Elvyn answered 2/4, 2012 at 13:44 Comment(0)
P
19

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..:)

Pericles answered 2/4, 2012 at 13:44 Comment(1)
Thanks. I have a follow up question, as I need to find a particular dSYM from inside a big pile of .xcarchive files: https://mcmap.net/q/821822/-extracting-xcarchive-files/129202Photochromy
B
27

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.

Burrill answered 3/4, 2012 at 9:59 Comment(2)
Great stuff, Thanks for your answer, Well i want to check if crash log is matching with build and dSYM file. ThanksElvyn
Love you so much for the Spotlight advice!Lustig
P
19

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..:)

Pericles answered 2/4, 2012 at 13:44 Comment(1)
Thanks. I have a follow up question, as I need to find a particular dSYM from inside a big pile of .xcarchive files: https://mcmap.net/q/821822/-extracting-xcarchive-files/129202Photochromy
N
2

You are supposed to archive your dSYM after you have created your .app file. Every build, even with the same source, can produce an entirely different dSYM file.

Do you have a unique file name for your .app file, one that includes the version number? If so, that name would be in your crash log at around line 5, next to Path:.

Other than this, I don't think there is any other built in way to associate one with the other.

Get into the habit of saving your dSYM file per release. I believe you can do this with Xcode archive - but I tend to do my app store releases from an automated command line tool, so I don't use this feature.

Nitaniter answered 2/4, 2012 at 13:51 Comment(1)
Thanks for your reply. You are absolutely correct, but i am working on a legacy code and the builds are already distributed, I have some idea about getting the UUID of crashlog as well as the UUID of dSYM file, but i am not 100% sure that it is the correct trick.Elvyn

© 2022 - 2024 — McMap. All rights reserved.