首先先说下bugly的崩溃统计是实时的,即你的app前脚崩溃,bugly后脚就会给你统计到,但是在统计崩溃信息的时候有的时候可能只给你记录了一个简单的崩溃信息,并不能详细的告诉你哪个类的哪个方法的哪行导致了app的崩溃,而bugly的符号表工具可以解决这个问题!下面笔者讲述的是在使用符号表工具遇到的坑,以及个人的见解!
一、首先得集成bugly,具体集成方案查看官网的文档就OK了;
二、第二步就是生成符号表文件
1.1环境要求
环境要求,你需要下载一个java环境,因为符号表工具的运行需要Java运行环境(JRE或JDK版本需要>=1.6)。
1.2 找到对应的dSYM文件
这里先不讲什么是dSYM文件,先完成项目再说。安装好环境以后,需要找到你项目的dSYM文件,首先看debug模式下的dSYM文件。按照下面的操作,cmd+B编译成功以后,就会生成debug环境的dSYM文件,这个时候就成功一半了!
走到这里,应该可以找到debug模式下的dSYM文件了,接下来就是利用符号表工具来生成符号表文件了。为了之后方便整理,笔者把找到的dSYM文件复制粘贴到了桌面上,并且放在了一个文件夹里,这个文件夹可以是自己的工作文件夹里,反正就是为了方便管理。
准备好文件后,从腾讯bugly官网下载符号表工具
下载安装完成以后,会看到下面的文件夹里的内容,
打开终端,执行以下命令:(下面的用户名是你自己电脑的账户名)
cd /Users/用户名/Downloads/buglySymboliOS
java -jar buglySymboliOS.jar -i /Users/用户名/Desktop/test.app.dSYM
-i后面的就是你的dSYM文件的路径,敲回车,这个时候稍等一下,大概一分钟左右吧(看项目大小),这个时候就会生成一个压缩包,符号表文件就在这个压缩包里面,不过现在不必要解压,直接把这个上传到官网就好了。
下面这条命令是直接生成符号表文件,并且上传符号表文件
java -jar buglySymboliOS.jar -i /Users/用户名/Desktop/test.app.dSYM -u -id 900
012345 -key abcdefghijk -package com.batman.demo -version 2.3.1
解释一下:id后面的是你在bugly官网生成的应用的appleid,key后面的是applekey,-package后面的是:安卓的是包名/iOS的是bundleid,version后面的是你这个应用的版本号,一定要和自己项目的版本号一致。上传成功以后,去你自己的bugly上,可以看到已经配置的符号表,到这里你就已经配置完成了。
你可以到你的崩溃信息里去查看一下,捕捉到的崩溃信息的堆栈是不是已经可以定位到你的代码的具体哪个类的哪个方法的哪行。
如果还没看到笔者总结了一下几个原因:
- 上传符号表文件后可能不能马上生效,我自己的是在第二天生效的;
- 查看自己的id和key是否正确;
- 查看版本号是否一致
接下来有的人会问,我的app已经上线了,怎么找到dSYM文件?这个没问题,你可以打开Xcode->Window->Organizer->Organizer
按照上述的操作,把dSYM文件复制到自己的文件夹里,使用刚刚一样的命令行,就可以查看自己线上app的崩溃的堆栈了,之前崩溃的也可以看到的哈!