Crashlog links to which .dSYM

孤者浪人 提交于 2019-12-02 20:51:32

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.

Nilesh

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

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!