iOS崩溃信息符号化

iOS崩溃信息符号化
一、获取崩溃信息的方法

获取崩溃信息的方法主要有以下几种:

  1. 如果可以拿到崩溃的机器,将崩溃信息连击到Xcode, 找到device logs 就可以得到崩溃日志。
  2. 可以从苹果开发者网站中看到官方的崩溃上报,但是局限于用户允许上报。如果是苹果开发者,在新版本的Xcode中,可以直接获取到崩溃日志。
  3. 使用三方崩溃统计或者自己捕获崩溃信息,并上传到后台。
二、了解崩溃信息

随便在xcode里找到的一个崩溃log

我们可以从图中看到一些基本的信息如:使用设备的型号、崩溃的进程、版本号、架构、崩溃时间、崩溃类型、还有一大推我们不认识的十六进制的数。
这些信息足够多,足够丰富但是对于不是机器的我们来说,并没有什么意义,想要找到到底为什么崩溃了,我们得把这些信息转换成我们认识的类的名称、函数名称、代码行号。

三、崩溃信息的符号化

有了崩溃信息,我们还需要有对应崩溃版本Xcode 编译时产生的.app 文件和.dSYM文件。每次编译都会产生产生这些文件,我们可以在Xcode 的目录下找到。

符号化的方法主要有三种
1. 使用Xcode自动符号化
2. 使用 Symbolicatecrash 符号化,这是Xcode自带的分析工具。使用方法为 Symbolicatecrash + xx.crash + xx.dSYM + > + result.crash。 Symbolicatecrash 使用过程中可能有一些问题,网上有很多大神有详尽的解决办法,这里就不多说了。
3. 使用xcrun atos 符号化。这种工具的使用方法有很多,我只列出一种亲测可用的,方法为
xcrun atos -arch armv7s -o xxx.app/xxx -l 0xe2000 0x00110373
其中 armv7s为我们在崩溃信息中看到的架构,xxx.app为编译产生的.app文件 0xe2000 为崩溃线程中 + 号前面的地址 0x00110373 为 0xe2000 前边的地址。

其中前两种方法需要官方崩溃日志的格式,也就是说需要完整的.crash 文件,最后一种可以用于没有完整的崩溃日志时使用的方法。需要一行一行的符号化,会写脚本的可以写个脚本来完成一次性符号化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值