iOS应用crash日志分析

解析crash日志,得到可疑代码,精确到类,代码行;

1. 首先,拿到手机上 崩溃后的crash日志,方法许多,这里介绍一种;

手机连接上xcode,点击xcode-Window-Devices,如下图所示,找到对应时间点,对应应用产生的crash日志信息,选中,右键,选择Export Log,将它保存至某目录下,这样就得到 crash日志文件“应用名+时间+log.crash”;

ios测试基础四:crash日志分析_ios

ios测试基础四:crash日志分析_ios_02

2. 其次,拿到应用打包时生成的.xcarchive文件,如何找到它:

xcode-Window-Organizer,打开后,可以看到所有打过包的Archives列表,找到崩溃包对应的 Archives文件,右键选择 show in finder,此文件为  " 应用名+时间.xcarchive";

3. 注意,将第1步和第2步得到的 两个文件放到同一目录下吧;

4. 打开mac上终端,输入命令行,此命令行执行的结果为 对应的类文件名称+出错的代码行号,一般来说,是相当精确的。。

   atos -o  文件1 -arch arm64 -l 地址1 地址2

运行后,结果为 如下所示,类名,代码行号信息,对于定位出crash原因就相当简洁了。

ios测试基础四:crash日志分析_ios_03

命令行中 :

  • 文件1 的来历:

 选择文件 " 应用名+时间.xcarchive"--右键--显示包内容--"dSYMs"--"应用名.app.dSYM"--"Contents"--"Resources"--"DWARF"--"应用名" ;---这个“应用名”就是文件1,将它直接拖到 终端上即可;

  • 地址1、地址2 的来历:

双击打开文件 “应用名+时间+log.crash”--找到 Last Exception Backtrace,最后的异常堆栈信息,在里面的信息里找到  崩溃应用的名称相关的日志;

如下图所示,红框处为崩溃应用名称,后面的红箭头所指地址为 地址1,蓝箭头所指为 地址2;

ios测试基础四:crash日志分析_ios_04