有dYMs文件解析日志,和umeng日志分析 bugly解析失败
dYMs文件解析
1.首先查找 dYMs文件,Xcode – Window – Organizer 找到 对应的项目 上传的那个版本号,然后show in finder 然后copy出来到桌面 改后缀为 xxx.zip 然后打开 dYMs copy出来到一个新的文件夹(名字aaa)
2.查找xxx.crash可以从在Organizer下载,如果是审核反馈的crash那就在网页点开,会出现一个页面显示一堆log,然后command+s 导出到桌面,改后缀名为 xxx.crash 并放到aaa文件夹里
3.查找symbolicatecrash,find /Applications/Xcode.app -name symbolicatecrash -type f 然后出现好几个 查找iPhone OS的 如果没有的话那就是最后一个,我的是这样的/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
4.在终端中进入到aaa文件夹,运行 /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash XXX.crash XXX.app.dSYM >log.crash 在当前文件解出 log.crash
如果有Error: “DEVELOPER_DIR” is not defined at /usr/bin/symbolicatecrash xxxxxx 执行下 export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
附 未解决和解决完后的对比图
umeng的错误分析
第一步 下载错误分析工具 并解压zip得到umcrashtool文件,可将umcrashtool与已下载的xxx.csv文件放入同一目录下。
第二步 在terminal中运行umcrashtool命令,参数为错误分析的.csv文件绝对路径,如下: sanzhang$ ./umcrashtool [absolutely_path_of_csv_file] 将umcrashtool与错误分析.csv文件放入同一目录下
第三步 在terminal中运行umcrashtool,提示如下: Usage: umcrashtool [export-file-path],定位后的代码及行数会写入错误分析-symbol.csv文件,与原文件在同一目录下。用工具打开新生成的xxx-symbol.csv文件,便可查看错误发生的源码文件及行数。
注:如果错误分析没有成功,请先确保对应的 xxx.dSYM 文件在 ~/Library/Developer/Xcode/ 或该路径的子目录下。(对于每一个产品发布时archive操作会将dsym文件存放到~/Library/Developer/Xcode/Archives路径下,因此建议保留该路径下的文件,以便后续用工具分析错误。) (摘自umeng官网)
打开终端 复制第一组箭头指向的内容,会出来一个地址, 然后复制出后面的dwarfdump –arch=arm64 –lookup 0x10014b86c “上面的地址” 然后结果中会有 Line table file: ‘PermissionsController.m’ line 88, column 23 with start address 0x000000010014b86c 是这个文件的第几行
Bugly解析失败
针对Buglycrash,用符号表没有解析出来的,使用系统命令解析
1.先获取dYMs文件-显示包内容-contents-Resources-DWARF ,将里面文件copy到外部文件夹,终端进入该文件
2.bugly复制日志基地址 日志详情 – 其他信息 – App base addr: 复制后面的地址0x00000001042bc000
3.复制要解析的地址- 出错堆栈 – 原始 – 前面地址附图
4.使用终端命令 xcrun atos -o 拷贝出来的文件名称 -l 基地址 (回车后进入调试模式)
5.将复制的 原始地址 输入 回车 解析完毕 结果如下