esi*_*ver 5 iphone xcode symbols symbolicatecrash
我有一个来自我的应用程序的特殊版本的.crash日志,其中symbolicatecrash拒绝符号化.在Apple破坏了XCode 3.2.6中的脚本后,我已经应用了.patch来删除 symbolicatecrash 中的'die'命令.Symbolicatecrash已经为其他崩溃日志工作,但拒绝象征这一个.我的ad hoc应用程序已构建并存储在"Archived Applications"中,因此XCode无法找到它.我甚至复制了.crash日志旁边的.app和.dSYM文件,没有骰子.
有没有办法可以强制symobolicatecrash使用特定的.app和.dsym文件,即使它认为它不适用?
esi*_*ver 10
结果我不小心删除了与崩溃日志相关的构建.symbolicatecrash使用以下逻辑来确定是否存在与崩溃日志关联的符号:
每个崩溃日志的底部都是二进制映像列表.你的名单首先列出.你的二进制图像有一个guid.例如:
0x1000 - 0x2befff +MyApp armv7 <a95274a309d73458a40cb5a6fd317a1c> /var/mobile/Applications/91884634-DA1A-4BDB-9E1E-6F487D8F25D7/MyApp.app/MyApp
Run Code Online (Sandbox Code Playgroud)
相关指南是:a95274a309d73458a40cb5a6fd317a1c
接下来,它使用工具mdfind来查看与文件系统中的文件相关联的元数据,以获取该GUID的大写和带连字符的形式.
从存档的应用程序中,如果单击MyApp.app.dSM,然后单击获取信息,然后显示更多信息,您将看到列出的dSYM UUID和两个GUID.第二个GUID是相关的.它将是以下形式:
A95274A3-09D7-3458-A40C-B5A6FD317A1C

如果第二个GUID与.crash文件中的guid匹配,则symbolicate crash将能够查找和符号化.如果它们不匹配,那就是错误的二进制文件.
干杯,埃里克
好的结果是现在这个答案是最新的XCode 5.1.1所需要的:
最近我从ad-hoc构建中获得了崩溃日志.XCode拒绝Symbolicate.我有几个小时的存档版本,我想使用我的存档版本强制进行符号化.我是这样做的:
1)首先,我打开了一个终端窗口,然后转到包含我的存档的目录.我运行了这个命令:
xcrun dwarfdump --uuid Example.app/Example | tr '[:upper:]' '[:lower:]' | tr -d '-'
Run Code Online (Sandbox Code Playgroud)
这拉出了归档版本的dsym_uuid.tr命令将guid从带有破折号的大写guid转换为没有破折号的小写guid
2)我进入了.crash文件并将崩溃日志中与我的二进制文件相关的guid更改为与我机器上的xcdarchive相关联的guid
例如,来自
0x80000 - 0x49efff +MyApp armv7 <aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa> /var/mobile/Applications/DC23BDC0-75E3-4DCA-8AC3-099889CE22E0/MyApp.app/MyApp
Run Code Online (Sandbox Code Playgroud)
至
0x80000 - 0x49efff +MyApp armv7 <bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb> /var/mobile/Applications/DC23BDC0-75E3-4DCA-8AC3-099889CE22E0/MyApp.app/MyApp
Run Code Online (Sandbox Code Playgroud)
3)从终端,我将DEVELOPER_DIR环境var设置为:
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
Run Code Online (Sandbox Code Playgroud)
4)最后,我运行了这个命令的野兽:
/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
Run Code Online (Sandbox Code Playgroud)
请注意,在较新版本的XCode中,symbolicatecrash的路径更改为:
/Applications/Xcode6.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
Run Code Online (Sandbox Code Playgroud)
此命令使用您拥有的.crash文件对您的存档运行symbolicatecrash
| 归档时间: |
|
| 查看次数: |
5899 次 |
| 最近记录: |