iOS上线之后crash处理

APP上线之后,如何查看crash,怎么处理?

(1)在XCode中定位处理

(2)集成第三方,通过第三方上传的日志处理

(3)设备中的日志如何符号化

一,在XCode中定位crash具体的方法

1,APP的crash情况,可以在iTunes connect上查看,如下图。


屏幕快照 2018-07-19 16.38.44.png

[图片上传中...(屏幕快照 2018-07-19 16.44.53.png-1ddc59-1531990235515-0)]
屏幕快照 2018-07-19 16.44.53.png

通过上面的数据,定位crash是在那个版本。
怎么处理,可以在XCode中找到crash的具体地方。


[图片上传中...(屏幕快照 2018-07-19 16.54.47.png-7c4c56-1531990883184-0)]
屏幕快照 2018-07-19 16.54.47.png

二,使用第三方的crash收集,我这里使用的是百度统计的。根据文档集成,记得要上传.dsym文件,百度统计会自动符号化,供我们查看。

百度统计crash集成文档https://mtj.baidu.com/sdkdoc/iOS/BaiduMTJ_iOS_App_V4.8.0/function/crash/analysis/auto.html
下图是上传文件的地方。文档中的dsym文件在哪里得到,后面有提到。

屏幕快照 2018-07-26 08.53.38.png

根据文档上传文件后,用户crash日志会被自动符号化,如下图:


屏幕快照 2018-07-23 10.35.35.png

三,crash日志符号化。有时需要查看本地的crash原因,如何符号化crash日志?符号化crash日志需要三个文件 .Crash、.dSYM、和symbolicatecrash。

1,找crash日志。本地crash日志在哪里。

屏幕快照 2018-07-25 11.21.45.png

找准你自己的APP crash日志导出,就是 .crash文件。


屏幕快照 2018-07-25 11.32.35.png

2,找symbolicatecrash文件。 symbolicatecrash是Xcode自带工具解析iOS Crash的工具。

终端输入:
find /Applications/Xcode.app -name symbolicatecrash -type f

得到symbolicatecrash文件路径,直接前往即可。

/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash

symbolicatecrash长这个样子


屏幕快照 2018-07-25 11.42.26.png

3,找dsym文件。想要每次编译(debug)都有dsym文件,请在build setting里面设置一下。

屏幕快照 2018-07-25 13.51.12.png

打开设置后,点击product文件下的.app文件,show in finder 在里面会看到dsym文件。记得找你crash对应的版本的dsym,别随便搞一个,每个版本的dsym对应的uuid是不一样的。


屏幕快照 2018-07-25 14.04.24.png

release之后的包在哪里找dsym文件呢?看图
屏幕快照 2018-07-25 14.12.45.png

屏幕快照 2018-07-25 14.13.07.png

显示包内容,就会看到dsym文件夹。

4,符号化crash文件。

将. dsym .crash和symbolicatecrash 拖入同一个文件夹。打开终端输入命令:

//test是三个文件所在的文件夹
cd /Users/zhouyang/Desktop/test 
//注释:命令样式 ./symbolicatecrash . crash文件路径 .dSYM文件路径 > Control_symbol.crash

./symbolicatecrash /Users/zhouyang/Desktop/test/LittleInvestLetou\ \ 2018-7-25\ 11-30.crash /Users/zhouyang/Desktop/test/LittleInvestLetou.app.dSYM > Control_symbol.crash

如果出现:

Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.

请输入以下命令:

export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer" 

再次执行

//注释:命令样式 ./symbolicatecrash . crash文件路径 .dSYM文件路径 > Control_symbol.crash

./symbolicatecrash /Users/zhouyang/Desktop/test/LittleInvestLetou\ \ 2018-7-25\ 11-30.crash /Users/zhouyang/Desktop/test/LittleInvestLetou.app.dSYM > Control_symbol.crash

执行完后会得到一个Control_symbol.crash文件,里面的内容就是符号化后的内容。


屏幕快照 2018-07-25 16.18.26.png

屏幕快照 2018-07-25 16.27.58.png

推荐阅读更多精彩内容

  • [这是第14篇] 序: iOS Crash问题是iOS开发中难以忽视的存在,本文就捕获iOS Crash、Cras...
    南华coder阅读 6,329评论 23 97
  • 本文就捕获iOS Crash、Crash日志组成、Crash日志符号化、异常信息解读、常见的Crash五部分介绍。...
    xukuangbo_阅读 484评论 0 0
  • iOS Crash 流程化:一般的 Crash 日志解析方法TL;DR一、手动解析 Crash 日志1、需要的相关...
    Vinc阅读 895评论 0 4
  • 一、捕获iOS Crash 1、设置异常断点并运行 设置异常断点.png 说明:设置Xcode异常断点后运行程序,...
    LeiLv阅读 326评论 0 0
  • 流水负了落花, 恨无意, 情深无归处。 林花谢了春红, 怨匆匆, 梦碎无人书。 白月光,青树叶,影无双。 洗却一世...
    滟昕阅读 35评论 4 4