记录通过xxx.app.dSYM文件解析16进制闪退信息
因为运营给到的闪退信息是.txt文本,而不是导出的.carsh文件,同时给到了出包的xxx.app.dsYM文件,为了查看具体的闪退日志,只能通过命令行转才能查看原因。(如果同时有给到.crash文件、.app文件、.app.dsYM文件就可以直接通过Xcode自带的symbolicatecrash工具批量解析16进制闪退文件,导出到指定的文件)
由于只有如下16进制闪退信息跟.app.dsYM文件,利用如下命令逐一转成可读闪退信息:
atos -o ryxsg.app.dSYM/Contents/Resources/DWARF/ryxsg -arch arm64 -l 0x0000000104b04000 0x0000000104b1d8bc
atos -o ryxsg.app.dSYM/Contents/Resources/DWARF/ryxsg -arch arm64 -l 后面拼接16进制闪退信息
注:需要替换ryxsg为自己的对应.dsYM文件名
16进制闪退信息如下:
0
libdispatch.dylib
0x000000018e7eef1c 0x000000018e786000 + 429852
1
libdispatch.dylib
0x000000018e7b823c 0x000000018e786000 + 205372
2
ryxsg
0x0000000104e190bc 0x0000000104b04000 + 3231932
3
ryxsg
0x0000000104b1d8bc 0x0000000104b04000 + 104636
4
ryxsg
0x0000000105cc23b8 _ZN7plcrash5async24dwarf_cfa_state_iteratorIyxE4nextEPjPNS0_28plcrash_dwarf_cfa_reg_rule_tEPy + 2404792
5
UIKitCore
0x000000019146d3cc 0x0000000190923000 + 11838412
注意:ox表示闪退日志的开头,上面闪退日志,给到的需要将后面一段ox开头放在前面
比如这一段16进制闪退日志:0x0000000104e190bc 0x0000000104b04000 + 3231932,解析的时候需要将后面的 0x0000000104b04000放前面空格后再加上前面那一段16进制0x0000000104e190bc
示例如下:
atos -o ryxsg.app.dSYM/Contents/Resources/DWARF/ryxsg -arch arm64 -l 0x0000000104b04000 0x0000000104e190bc
解析结果如下:
-[JiHeSdk JiHeapplication:didReceiveRemoteNotification:fetchCompletionHandler:] (in ryxsg) (JiHeSdk.m:0)