强制symbolicatecrash使用特定的.app和.dSYM文件? [英] Force symbolicatecrash to use a specific .app and .dSYM file?

查看:191
本文介绍了强制symbolicatecrash使用特定的.app和.dSYM文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序的ad-hoc版本中有一个.crash日志,这符号表示拒绝符号化。苹果打破脚本后,我已经应用.patch删除了symbolicecrash中的'die'命令在XCode 3.2.6中。 Symbolicatecrash已经为其他崩溃日志工作,但拒绝象征这一个。我的ad hoc应用程序已构建并存储在Archived Applications中,因此XCode无法找到它。我甚至复制了.crash日志旁边的.app和.dSYM文件,没有骰子。



有没有办法可以强制symobolicatecrash使用特定的.app和.dsym文件,即使它不认为它适用?

解决方案

现在确定这个答案是最新的XCode 5.1.1所需要的:



最近我从ad-hoc构建中获得了崩溃日志。 XCode拒绝Symbolicate。我有几个小时的存档版本,我想使用我的存档版本强制进行符号化。我是这样做的:



1)首先,我打开了一个终端窗口,然后转到包含我的档案的目录。我运行了这个命令:

  xcrun dwarfdump --uuid Example.app/Example | tr'[:upper:]''[:lower:]'| tr -d' - '

这取出了存档版本的dsym_uuid。 tr命令将guid从带有破折号的大写guid转换为没有破折号的小写guid



2)我进入.crash文件并更改了与我相关联的guid崩溃日志中的二进制文件到我机器上的xcdarchive关联的guid



例如,从



$ b

  0x80000  -  0x49efff + MyApp armv7< aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa> /var/mobile/Applications/DC23BDC0-75E3-4DCA-8AC3-099889CE22E0/MyApp.app/MyApp 



  0x80000  -  0x49efff + MyApp的ARMv7的< bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb> /var/mobile/Applications/DC23BDC0-75E3-4DCA-8AC3-099889CE22E0/MyApp.app/MyApp 



3)在终端上,我将DEVELOPER_DIR环境var设置为:

  export DEVELOPER_DIR = / Applications / XCode.app / Contents /开发人员

4)最后,我运行了这个命令的野兽:



'pre> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/ symbolicatecrash -v MyApp.crash / Users / me / Library / Developer / Xcode / Archives / 2013-05-31 / MyApp\ 5-31-13\ 7.00 \ PM.xcarchive / Products / Applications / MyApp.app

请注意,在较新版本的XCode中,symbolicatecrash的路径更改为:



'pre> /Applications/Xcode6.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

此命令运行使用您拥有的.crash文件对您的存档进行符号验证


I have a .crash log from an ad-hoc version of my app that symbolicatecrash refuses to symbolicate. I have already applied the .patch to remove the 'die' command in symbolicatecrash after apple broke the script in XCode 3.2.6. Symbolicatecrash has worked for other crash logs but refuses to symbolicate this one. My ad hoc app was built and is stored in "Archived Applications", so there is no reason why XCode shouldn't be able to find it. I have even copied the .app and .dSYM files right next to the .crash log, no dice.

Is there a way I can force symobolicatecrash to use a specific .app and .dsym files even if it doesn't think it applies?

解决方案

OK turns out this answer is now what is required for the latest XCode 5.1.1:

Recently I had a crash log from an ad-hoc build. XCode refused to Symbolicate. I had an archived build a few hours old and I wanted to force a symbolication using my archived build. Here is how I did it:

1) First I opened a terminal window and went to the directory containing my archive. I ran this command:

xcrun dwarfdump --uuid Example.app/Example | tr '[:upper:]' '[:lower:]' | tr -d '-'

This pulled out the dsym_uuid of the archived build. The tr command converts the guid from an uppercase guid with dashes to a lowercase guid with no dashes

2) I went into the .crash file and changed the guid associated with my binary in the crash log to the guid associated with the xcdarchive on my machine

For example, went from

   0x80000 -   0x49efff +MyApp armv7  <aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa> /var/mobile/Applications/DC23BDC0-75E3-4DCA-8AC3-099889CE22E0/MyApp.app/MyApp

to

   0x80000 -   0x49efff +MyApp armv7  <bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb> /var/mobile/Applications/DC23BDC0-75E3-4DCA-8AC3-099889CE22E0/MyApp.app/MyApp

3) From the terminal, I set my DEVELOPER_DIR environment var to:

export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer

4) Finally, I ran this beast of a command:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash -v MyApp.crash /Users/me/Library/Developer/Xcode/Archives/2013-05-31/MyApp\ 5-31-13\ 7.00\ PM.xcarchive/Products/Applications/MyApp.app

Note that the path to symbolicatecrash changes in newer versions of XCode, to:

 /Applications/Xcode6.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

This command run symbolicatecrash against your archive using the .crash file you have

这篇关于强制symbolicatecrash使用特定的.app和.dSYM文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆