iOS应用崩溃日志.crash报告符号化/.dYSM符号表手动解析(Objective-C)

2018.4.22

自动解析

借助第三方平台,我选择的是鹅厂出品的Bugly,老老实实地按照文档去配置好你的工程,特别是符号表的配置,那就一切OK了,发生Crash的时候,去后台看,对应的crash信息都是已经自动符号化完成了的。Bugly iOS 符号表配置

手动解析
1.崩溃日志.crash导出

方式一,打开Xcode > Window > Devices and Simulators > 选择相应的设备 > View Device Logs > 找到相应的crash log > Export Log 保存到桌面
方式二,打开Xcode > Window > Organizer > Crashes > 找到相应的log,点击Show in Finder,打开多层文件夹,然后找到相应的.crash文件,复制到桌面. (一般情况下,此处的信息是已经被符号化过的,可以直接查看到具体崩溃信息的,无需额外手动解析了)
方式三,应用审核时发生的Crash,像我悲催的遇到了,AdHoc版本没问题,AppStore版本就是会崩溃,真是简直了;将审核反馈信息中附带的.txt下载到桌面,改变后缀为.crash

2.符号表文件.dYSM导出

注:.dSYM文件是iOS编译后保存16进制函数地址映射信息的文件,每次应用程序build后,都会生成对应的xxx.appxxx.app.dSYM文件,不过前提是,你没有乱搞你的工程配置;在工程配置中设置生成.dSYM文件 ,Build Settings -> Debug information format -> 选DWARF with dSYM File ,打包时就会生成dSYM文件
方式一,获取.archive文件,前往文件夹 /用户/用户名/资源库/Developer/Xcode/Archives -> 找到目标build版本对应的.archive文件 > 显示包内容,找到其中的xxx.app.dSYM文件,复制到桌面
方式二,如果已经成功上架商店了,那么可以选择,打开Xcode > Window > Organizer > Archives > 选择正确的Build版本,右边信息栏点击Download dYSMs...下载文件到桌面
方式三,从iTunes Connect网站下载dSYM文件,1. 打开App Details页面。2. 点击活动。3. 从所有版本列表中选择一个版本。4. 点击**下载dSYM**链接。 Technical Note TN2151 反正我到现在也没找着那个所谓的下载链接了,ok,我承认我很笨 = = 。

3.脚本文件symbolicatecrash导出

Xcode 7及之前的版本应该是,前往文件夹 用户/用户名/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources
Xcode 7之后的版本是,用户/用户名/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources
当然,也可以直接在应用文件夹中找到Xcode.app显示包内容,手动进到Resources文件夹了
复制symbolicatecrash脚本文件到桌面

4.手动解析.

现在我们有了.crash日志文件,.dYSM符号表文件,以及symbolicatecrash脚本文件,新建一个文件夹,随意命名为crashAnalysis,将3个文件都拖入其中;
command+空格打开spotlight,输入ter打开终端,终端中输入cd + 空格,将crashAnalysis拖入终端以自动补充文件路径,点击回车;即,进入到桌面crash文件夹中
终端中继续输入命令:进行crash日志解析

./symbolicatecrash xxx.crash的文件路径 xxx.app.dSYM的文件路径 > log.crash

如果终端报错:

Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69. 

输入:

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

然后再输入:进行crash日志解析

./symbolicatecrash xxx.crash的文件路径 xxx.app.dSYM的文件路径 > log.crash

现在,crashAnalysis文件夹中会新增文件log.crash,这个就是已经符号化完成了的日志文件了。那么,江湖再见咯~

参考链接:我怎么可能那么聪明,没有参考链接就能搞的定呢~
1.iOS crash报告符号化,.ips文件分析
2.Bugly,手动生成符号表的步骤
3.iOS通过dSYM文件分析crash
4.Where is located symbolicatecrash in Xcode 8?

你可能感兴趣的:(iOS应用崩溃日志.crash报告符号化/.dYSM符号表手动解析(Objective-C))