iOS .Crash文件分析处理办法 (利用symbolicatecrash工具处理)

崩溃分析方式:命令行解析Crash文件bash

经过Mac自带的命令行工具解析Crash文件须要具有三个文件服务器

  • symbolicatecrash,Xcode自带的崩溃分析工具,使用这个工具能够更精确的定位崩溃所在的位置,将0x开头的地址替换为响应的代码和具体行数。
  • 咱们打包时产生的dSYM文件。
  • 崩溃时产生的Crash文件。

一、获取.crash文件

获取崩溃信息方式:app

  • 使用友盟、蒲公英等第三方崩溃统计工具。->iOS 友盟第三方崩溃统计的解析-dSYM
  • 本身实现应用内崩溃收集,并上传服务器。
  • Xcode-Devices中直接查看某个设备的崩溃信息。
  • 使用苹果提供的Crash崩溃收集服务。

这篇文章先只用第四个方式-审核被拒给个人.crash文件,其余方式之后讨论。函数

二、获取 .app 和 .app.dSYM 文件

2.一、步骤:

一、Xcode-Window-Organize找到要检查的对应Archives找到App-右击-Show in Finder工具

二、右击 .xcarchive 文件-显示包内容ui

三、分别复制dSYMs文件夹下的 **.app.dSYM 文件和 Products->Applications文件夹下的 app文件放入 .crash 文件所在的crash文件夹中(文件夹本身建的)。spa

2.二、dSYM 符号集介绍:

  • 符号集是咱们对ipa文件进行打包以后,和.app文件同级的后缀名为.dSYM的文件,这个文件必须使用Xcode进行打包才有。
  • 每个.dSYM文件都有一个UUID,和.app文件中的UUID对应,表明着是一个应用。而.dSYM文件中每一条崩溃信息也有一个单独的UUID,用来和程序的UUID进行校对。
  • 咱们若是不使用.dSYM文件获取到的崩溃信息都是不许确的。
  • 符号集中存储着文件名、方法名、行号的信息,是和可执行文件的16进制函数地址对应的,经过分析崩溃的.Crash文件能够准确知道具体的崩溃信息。

当程序崩溃的时候,咱们能够得到到崩溃的错误堆栈,可是这个错误堆栈都是0x开头的16进制地址,须要咱们使用Xcode自带的symbolicatecrash工具来将.Crash和.dSYM文件进行符号化,就能够获得详细崩溃的信息。命令行

三、获取symbolicatecrash工具

一、打开终端输入如下命令:code

find /Applications/Xcode.app -name symbolicatecrash -type f 我找到的是: /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash 

二、用命令将symbolicatecrash拷贝到桌面的crash文件夹里面,与.app和.app.dSYM放一块儿orm

cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Users/***/Desktop/crash 

四、开始命令行解析Crash文件

一、打开终端用命令切换到桌面的crash目录下:

cd /Users/***/Desktop/crash 

二、执行命令

./symbolicatecrash /Users/***/Desktop/crash/*.crash /Users/***/Desktop/crash/*.app.dSYM > jieguo.crash 2.一、 若是上面命令不成功,须要使用下面命令设置一下导出的环境变量,而后重复上面解析的操做。 export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer 

三、解析完成后会生成一个新的.Crash文件,这个文件中就是崩溃详细信息。

 
解析前
 
解析后

使用友盟、蒲公英等第三方崩溃统计工具获取的信息能够用以下方式解析iOS 友盟第三方崩溃统计的解析-dSYM

相关文章
相关标签/搜索