友盟bug日志分析
一、友盟工具分析
1、去友盟后台,我的产品->移动统计->错误分析,找到有哪些bug日志,并把日志下载下来。
bug log 1.png
bug log 2.png
bug log 3.png
2、下载错误分析工具
3、把下载下来的工具和日志放到同一个文件夹,终端运行umcrashtool脚本就能自动分析错误日志,执行成功后在同一文件夹内会生成分析日志,并定位到代码处。xxx-symbol.csv文件就是分析结果。
代码语言:javascript复制//进入到该文件夹内,以下是终端命令
sanzhang$ ./umcrashtool [absolutely_path_of_csv_file]
bug log 4.png
bug log 5.png
最重要的:如果错误分析没有成功,请先确保对应的 xxx.dSYM 文件在 ~/Library/Developer/Xcode/ 或该路径的子目录下。(对于每一个产品发布时archive操作会将dsym文件存放到~/Library/Developer/Xcode/Archives路径下,因此建议保留该路径下的文件,以便后续用工具分析错误。)
4、打包release发版的时候一定要生成dsYM文件,设置如下
bug log 7.png
二、终端命令行手动分析
1、首先还是找到友盟后台错误日志,主要分析标记出颜色的地址
bug log 2.png
2、查找dSYM文件步骤:
Xcode --> Windows --> Organizer ,接着找到最新发布的xcarchive文件。
3、右击该xcarchive文件,打开方式选择终端打开,接着终端一层一层进文件。
dSYMs --> XXX.app.dSYM --> Contents --> Resources --> DWARF
4、进到DWARF后就可以开始反编译,从而找到二进制对应的源码位置
执行代码:atos -arch arm64 -o APPNAME 内存地址,就可以看到这处内存地址反编译回来的源码行了
代码语言:javascript复制sanzhang$ atos -arch arm64 -o APPNAME 0x1005ae490
5、一行行分析完后就会有一个整体的函数调用栈,和平常打断点一样
bug log 6.png