我们应用上线后往往会遇到各种各样的crash。其实当你的app 在手机上crash的时候,会在手机上自动生成一个崩溃日志,也就是我们说的Crash Log。CrashLog的位置位于:
iPhone设备的var/mobile/Library/Logs/CrashReporter
一、获取崩溃日志的方法
1、通过 iTunes Connect
对于已经上线的应用,如果用户同意上传相关信息(具体操作为:打开了诊断与用量这个选项设置->隐私->诊断与用量 )。那么作为开发者,你想要获取到你的用户的崩溃日志的话就得通过 iTunes Connect 了。在 iTunes Connect 上的 Manage Your Applications -> View Details -> Crash Reports。
2、获取测试机的crash log
通过Xcode获取到崩溃日志,方法是Xcode->Window->Devices
3、通过友盟等第三方统计获取
二、以友盟统计为例,如何分析崩溃日志
我们项目默认都接了友盟统计,因此每天上班的第一个任务就是打开友盟查看崩溃信息。通常的崩溃信息是长这样子的。
步骤一、乍一看日志,看不懂。但我们将注意力放在高亮的那几行,这里就是出现crash的内存地址。
步骤二、当我们点击地址,会弹出一个的提示窗。
步骤三、打开终端,进入到 *.dSYM 文件 所在的文件夹。(.dSYM文件为每次编译后自动生成,为了方便应用上线后定位错误,备份好.dSYM文件是一个良好的习惯)
步骤四、将步骤二弹窗的后半句命令行复制到终端,将后面的 “$dSYMPath” 替换成当前*.dSYM 的路径。以下是我的命令行:
dwarfdump --arch=arm64 --lookup 0x1002c9444 NewLingHit882.app.dSYM
步骤五、找到崩溃代码位置
三、通过第三方工具定位crash位置
除了终端定位错误位置外还能用一个第三方的工具dSYMTool协助定位到项目crash的代码,这里附上dSYMTool。
只需将.dSYM文件拖入,并将错误内存地址copy在对应位置,即可快速找到对应的方法。