APP上线之后,如何查看crash,怎么处理?
(1)在XCode中定位处理
(2)集成第三方,通过第三方上传的日志处理
(3)设备中的日志如何符号化
一,在XCode中定位crash具体的方法
1,APP的crash情况,可以在iTunes connect上查看,如下图。
通过上面的数据,定位crash是在那个版本。
怎么处理,可以在XCode中找到crash的具体地方。
二,使用第三方的crash收集,我这里使用的是百度统计的。根据文档集成,记得要上传.dsym文件,百度统计会自动符号化,供我们查看。
百度统计crash集成文档https://mtj.baidu.com/sdkdoc/iOS/BaiduMTJ_iOS_App_V4.8.0/function/crash/analysis/auto.html
下图是上传文件的地方。文档中的dsym文件在哪里得到,后面有提到。
根据文档上传文件后,用户crash日志会被自动符号化,如下图:
三,crash日志符号化。有时需要查看本地的crash原因,如何符号化crash日志?符号化crash日志需要三个文件 .Crash、.dSYM、和symbolicatecrash。
1,找crash日志。本地crash日志在哪里。
找准你自己的APP crash日志导出,就是 .crash文件。
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长这个样子
3,找dsym文件。想要每次编译(debug)都有dsym文件,请在build setting里面设置一下。
打开设置后,点击product文件下的.app文件,show in finder 在里面会看到dsym文件。记得找你crash对应的版本的dsym,别随便搞一个,每个版本的dsym对应的uuid是不一样的。
显示包内容,就会看到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文件,里面的内容就是符号化后的内容。