美文网首页
iOS 使用.dSYM文件来符号化崩溃信息

iOS 使用.dSYM文件来符号化崩溃信息

作者: sunxu_cocoa | 来源:发表于2020-04-03 10:43 被阅读0次

.dSYM文件

是debugger Symbols 的简称,是一个符号表文件,保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,包括文件名、函数名、行号等.

.crash文件

奔溃文件,当我们APP崩溃时会生成.crash文件,自动保存在设备本地,App上线以后苹果就会自动捕捉崩溃信息,当App出现Crash后iOS系统就会记录崩溃日志并上传到Appple的服务器。前提是需要用户同意 “与应用开发者共享”。
步骤为 设置->隐私->诊断与用量->与应用开发者共享
关于崩溃的确切语句和函数部分只有16进制地址符号,所以需要使用.dSYM文件来对地址进行解析,如下图,都是地址,没发直接阅读。


image.png

获取.dSYM文件分debug和release

release:选择window->organizer-archives,右击,选择Show in Finder就可以选中archived 文件然后显示包内容,就可以找到dSYM文件了。
debug:在项目工程里面的 Products 文件的 xxx.app 文件里面可以找到 xxxx.app.dSYM 文件,找不到需要在工程配置一下,然后重新运行。


image.png

获取crash文件分线上和线下

线上:如果APP已经上线了,直接打开xcode->window->organizer-Crashes,需要联网获取,如下图展示的就是你线上版本的crash日志,左上角可以切换不同的构建版本。


image.png

右键show in finder,就可以获取到对应的.crash文件,这个文件是已经符号化的,不需要解析,可以直接查看。


image.png

线下:APP崩溃后的日志是保存在手机上的,需要与电脑上的iTunes同步,即将崩溃日志保存在电脑上的文件夹中
具体文件位置:

Mac OS X:~/Library/Logs/CrashReporter/MobileDevice

Windows XP:C:\Documents and Settings\Application Data\Apple computer\Logs\CrashReporter

Windows 7/Vista: C:\Users\计算机登录名\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice

或者直接使用xcode查看,xcode 会自动符号化


image.png

或者使用iTools进入“工具箱”tab,点击崩溃日志,进入崩溃日志页面,导出对应的crash文件。

symbolicatecrash

Xcode自带的崩溃分析工具,使用这个工具可以更精确的定位崩溃所在的位置,将0x开头的地址替换为响应的代码和具体行数。

➜  ~ find /Applications/Xcode.app -name 'symbolicatecrash'
/Applications/Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
这里使用最后一个
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

1.在桌面创建一个crash文件夹,然后将这个工具copy进去,使用命令如下

cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash ~/Desktop/Crash

2.将获取到.crash,.dSYM,symbolicatecrash都放到刚刚创建的crash文件夹。执行如下命令

./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash

如果报错Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.,再执行如下命令设置一下导出的环境变量

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

然后重新导出。

image.png
这个symbol.crash就是解析好的文件。打开如下
image.png
变成我们能看的懂得了。
参考文章:https://www.jianshu.com/p/480c0a2ac1a4
https://www.jianshu.com/p/0b6f5148dab8
http://www.cocoachina.com/articles/6677

还有个工具也不错dSYMTools
https://github.com/answer-huang/dSYMTools

相关文章

  • iOS 使用.dSYM文件来符号化崩溃信息

    .dSYM文件 是debugger Symbols 的简称,是一个符号表文件,保存 16 进制函数地址映射信息的中...

  • 如何使用DSYM文件来符号化崩溃信息

    [toc] 一、为什么要符号化? 对应线上app闪退日志,闪退的堆栈都是以下格式 这种信息开发肯定无法找到具体的报...

  • 符号化二进制崩溃问题

    符号化二进制崩溃问题 1、首先拿到项目中的dSYM符号化文件,新建一个文件夹吧dSYM放里面,并且双击打开这个文件...

  • iOS Crash 符号化与分析

    iOS Crash 符号化与分析 1.crash文件与dSYM文件的UUID crash文件的UUIDBinary...

  • iOS 崩溃日志分析

    个人对iOS崩溃日志分析的使用记录。 一、无dsym文件:参考链接: https://www.cnblogs.co...

  • Xcode 崩溃日志符号化

    Xcode 崩溃日志符号化 符号化必备三样东西: Crash Log dSYM 符号集 symbolicatecr...

  • DSYM文件

    什么是dSYM文件? iOS平台中,dSYM文件是指具有调试信息的目标文件,文件名通常为:xxx.app.dSYM...

  • 3.Xcode方面问题

    1.iOS崩溃日志分析 iOS 获得crash dSYM方法(手机本地连接方式) [iOS Crash文件分析]-...

  • iOS无dSYM符号表情况下的崩溃分析

    一、dSYM符号表分析崩溃 在能够获取到dSYM符号表文件的情况下,分析崩溃详情请移步iOS crash 解析定位...

  • iOS开启BitCode的注意事项

    1、项目开启bitcode后,.dSYM文件不能用来崩溃日志的符号化。用户下载的包是Apple服务重新编译产生的,...

网友评论

      本文标题:iOS 使用.dSYM文件来符号化崩溃信息

      本文链接:https://www.haomeiwen.com/subject/tenqphtx.html