软件开发完成后虽然经历了相当多的测试,但是谁都不可能保证项目不会出现任何问题,所以偶尔出现Crash问题也是正常的现象,但是既然出现了Crash我们怎么获取Crash log呢?
方法一:利用的Xcode中可以定位到程序崩溃的位置
方法二:有一定的局限性,仅限于我们测试人员的手机出现了崩溃
我们需要将崩溃的所有的手机连接我们的Xcode,找到窗口 - >设备这里可以拿到这个手机中所有安装的应用程序的崩溃日志,找到崩溃日志后,重新使用第二种方法即可找到问题。
注意:通过这种方式获取的Carsh日志乍看有点发蒙不知道从哪里入手,其实这个日志我们是无法定位Crash位置的,这时候我们需要使用Symbolicatecrash工具对日志进行“符号化“。
符号化的步骤如下:
1、首先,我们需要准备的文件分别是.crash,.dSYM和.app三个文件。
2、需要将这三个文件和symbolicatecrash工具放在同一个文件夹中。
3、打开终端输入如下命令
cd /Users/dzq/Desktop/crash
./symbolicatecrash /Users/dzq/Desktop/crash/***.crash /Users/dzq/Desktop/crash/***.app.dSYM > carshLog.crash
提示: ***指的是具体的文件名(项目文件名)
symbolicatecrash文件 查找方法:find /Applications/Xcode.app -name symbolicatecrash -type f
注意:如果出现-bash:./ symbolicatecrash:Permission denied提示,这时候需要先输入如下命令
如果在符号化过程中遇到如下错误:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
可以在终端输入:
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
解决。
chmod a + x ./symbolicatecrash
这时候,我们就可以了符号化Crash Log。
注意:
1、以上三个文件必须保证UUID一直
2、symbolicatecrash文件获取方法
MacBook-Pro:~ dzq$ find /Applications/Xcode.app -name symbolicatecrash -type f
方法三:利用第三方统计日志
这里以友盟Crash统计为例进行符号化,符号化的步骤如下:
1、准备符号化工具 umcrashtool
2、从友盟网站获取 .csv Error log文件
3、打开终端输入如下命令
./umcrashtool Error log文件路径.csv
最后需要注意:有一些方法是有大前提是必须在工程中做如下配置: