(目前只能定位到问题的位置,崩溃原因尚没有明确解析出来,这里先粗略简单步骤写下,后期优化)
想直入主题的直接从“实操:”以下开始看
准备资料:
1.项目archive之后生成的后缀为dSYM的文件
2.后缀为crash的崩溃日志文件(txt可以直接改后缀即可)
能解析的前提是:
dSYM与carsh文件对应的uuid一致(验证方法):(比如dSYM文件名为:诺言.app.dSYM,如果不一致不能正确解析)
dwarfdump --uuid 诺言.app.dSYM
crash的uuid
Binary Images:
0x107692000 - 0x108181adf +com.zjaisino.NuoYan (1.2.4 - 177) ,这里的xxxx即为uuid
------------------------------------------------------------------------------------------
参考链接一:
iOS/Mac OS下的 Crash 崩溃分析(搜“简单的使用方法总结如下:”)
http://www.kobeluo.com/tech/2017/11/16/crashAnalysis/
步骤即:
1.找到crash文件相应版本号下的dSYM文件
2.下载相应.crash文件,并打开。
3.找到.crash文件顶部信息中的CodeType并记录,它包含ARM-64, ARM, x86-64, or x86.
4.在.crash文件中搜索Binary Images:,并记下你的包对应的 loadAddress
loadAddress也可以通过计算得到,等于(symbolicateAddress转10进制 - 偏移量)再转16进制,
loadAddress的后三位通常都是000,如果不是,则可能计算有误。
5.终端cd到 dSYM文件package contents下的DWARF目录
6.执行: atos -arch x86_64 -o appNameInDWARF -l loadAddress symbolicateAdress
(备注:
崩溃文件后缀如果不是.crash改为.crash
.crash和对应的dSYM放到同一文件夹下
然后终端cd到此目录下
上边链接里边命令写的symbolicateAdress对应的地址可以搜com.zjaisino.NuoYan后边对应16位16进制的地址,然后用那个地址替换symbolicateAdress
---------------------------------------------------------------------------------------------
参考链接二:
Mac OS App崩溃日志解析方法(搜x86,查看操作步骤)
https://www.jianshu.com/p/ebe0c37e5e1c
首先找到崩溃的地址。例如:
7 TheElements 0x0000000109ae552a 0x109ae3000 + 9514
----------------------------------------------------------------------------------------------------------------------------
通过atos符号化Crash Report
atos -arch x86_64 -o <Path to dSYM file>/Contents/Resources/DWARF/<binary image name> -l 0x109ae3000 0x0000000109ae552a
实操:
找到崩溃日志里的:
Binary Images:
0x1035e8000 - 0x1040e3fff +com.zjaisino.NuoYan (1.2.5 - 1.2.5.9) <618D3DF7-F820-3121-8284-13DF7C08E6C0> /var/folders/*/诺言 3.app/Contents/MacOS/诺言
这里边的0x1035e8000就是loadAddress
2 com.zjaisino.NuoYan 0x000000010377ac7e 0x1035e8000 + 1649790)
这里的0x000000010377ac7e就是symbolicateAdress
----------------------------------------------------------------------------------------------------------------------------
实践终端效果:
$ ~ % cd /Users/liushengnan/Desktop/Mac崩溃解析
$ Mac崩溃解析 % dwarfdump --uuid 诺言.app.dSYM
UUID: 618D3DF7-F820-3121-8284-13DF7C08E6C0 (x86_64) 诺言.app.dSYM/Contents/Resources/DWARF/诺言
$ Mac崩溃解析 % cd /Users/liushengnan/Desktop/Mac崩溃解析/诺言.app.dSYM/Contents/Resources/DWARF
$ DWARF % atos -arch x86_64 -o 诺言 -l 0x1035e8000 0x000000010377ac7e
__36-[DDAPISchedule registerTimeoutApi:]_block_invoke (in ) (DDAPISchedule.m:113)