最近公司上线App居然被拒了,审核团队给的拒绝原因很简单,直接甩给我三个crashlog文档,下载下来打开看一脸懵逼,这咋看?由于是第一次遇到,找了找文档学习,在这里整理下:
正题:
要分析奔溃日志需要三个文件:crash日志,symbolicatecrash分析工具,.dSYM符号集
1、在桌面上创建一个crash文件夹
2、获取崩溃日志,并将crash日志进行保存
将崩溃日志文件放入到桌面的crash文件夹中(如果不是审核被拒返回的崩溃日志文件,可以通过位置:Xcode->window->Devices and Simulators ->选中测试手机,点击views Devices Logs,根据时间点找到你的崩溃日志,右键Export 到桌面 ‘后缀名为默认 .crash, 可任意命名’,再将这个crash文件放入桌面的crash文件夹)
3、找到Xcode的位置,右键"显示包内容",根据以下目录找到symbolicatecrash工具, 获取路径
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
4、可以看到目前我们已经在桌面crash文件夹中有‘崩溃日志’和‘symbolicatecrash’解析工具,接下来我们获取dYSMs文件:
a. 打开Xcode,选择Window–>Orgianzer找到对应的Archive文件
b. 点击右边的Download dSYMS
c. 如果提示 No dSYMs were found for Version xxx Build xxx
d. 可以右键点击对应的Archive文件,show in finder,然后右键显示包内容,找到dSYMs文件夹下的对应dYSMs文件,拷贝到刚才的文件夹下
e .如果文件夹为空,那么就要去检查Xcode设置,在Xcode --> Build Setting 搜索 “debug information format”,将"DWARF"修改为"DWARF with dSYM File",之后重新打包就可以找到了
5. 打开终端,进入刚才的文件夹(cd 你自己的刚才创建的文件夹路径)
cd /Users/xxx/desktop/crash
6. 接着输入以下命令
/symbolicatecrash ./crash.txt ./MyAppName.app.dSYM > crash.log 注:crash.txt为苹果返回的崩溃日志的名字,MyAppName.app.dSYM为你自己拷出来的dSYM文件的名字,crash.log为你要输入的日志文件的名字
执行命令之前的crash文件夹内(上面三个txt格式的为苹果返回的崩溃日志文件)
如果提示"DEVELOPER_DIR" is not defined at xxxxxxxxxxxxxx,那么输入以下命令,如果没有则跳过:
1、临时方法:配置环境变量 DEVELOPER_DIR
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
2、永久方法:编辑~/.bash_profile,在末尾添加 #Add environment variable DEVELOPER_DIR
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developerexport PATH= D E V E L O P E R D I R : DEVELOPER_DIR: DEVELOPERDIR:PATH
然后保存文件,使用source ~/.bash_profile命令或者完全退出终端来刷新环境变量
7. 然后重新输入第6步的命令:/symbolicatecrash ./crash.txt ./MyAppName.app.dSYM > crash.log 。执行命令之后(.crash文件为生成的日志文件)
8、点击打开crash文件夹中的.log文件,就一目了然崩溃的原因了
具体出错原因分析,可以看看我的下一篇文章,真的是很尴尬!!