通常我们在iOS开发中,会遇到很多闪退崩溃的问题,当我们在本地调试的时候,大部分崩溃xcode可以直接定位到崩溃的位置,方便我们进行分析修改,但是,如果我们将应用发布以后出现闪退的情况,我们无法定位到崩溃的代码位置,这个时候就需要我们做一些处理来找出崩溃的代码位置,然后进行分析修改。
1.首选我们创建一个命名为crash的文件夹。(可以放在任意位置,自己开心就好)
2.然后我们需要拿到崩溃的日志,并下载到本地,这里我下载到本地以后,将文件命令为crash.text,方便接下来处理,将下载的日志文件拖入上一步创建的crash文件夹中。
3.回到电脑桌面,按快捷键command+shift+g打开快捷打开目录工具,然后复制路径/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash进去,回车打开,然后找到symbolicatecrash这个文件,将这个文件拷贝到第一步创建的crash文件夹中。
4.打开xcode,选择Window菜单下的“Organizer”选项, 打开窗口,然后选择“Archives”这个选项卡,在列表中找到上线对应版本的xcarchive文件,右键这个文件打开菜单,选择“Show in Finder”打开这个文件所在的目录,然后在打开的目录中右键这个文件,选择“显示包内容”,打开这个文件包的内容,然后打开内容里面的dSYMs这个文件夹,在文件夹中找到自己的项目对应的dSYM文件,同样将文件拷贝到第一步创建的crash文件夹中。到这里需要的文件准备工作就OK了。
5.打开终端,在终端中打开crash文件夹所在的目录,然后在这个目录下执行命令:./symbolicatecrash ./crash.txt ./TeachersSide.app.dSYM > crash.log
symbolicatecrash为xcode的解析工具,crash.text为下载的崩溃日志文件,TeachersSide.app.dSYM为自己的项目对应的dSYM文件,这里我的项目名称为TeachersSide,所以这个文件的名字为TeachersSide.app.dSYM
crash.log就是我们解析以后生成的解析完成的log日志文件
在执行这条命令时,可能会报错误信息:Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
这个时候,我们需要先执行一条命令:export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
执行完成以后,然后我们重新执行上一条命令./symbolicatecrash ./crash.txt ./TeachersSide.app.dSYM > crash.log
等待执行完成以后,我们在crash这个文件夹中,就可以看见一个crash.log的文件,这个文件就是我们解析完成的日志文件。
然后双击打开这个文件,在这个文件中,我们就可以看到我们代码崩溃的类名、方法、和崩溃代码所在的行数等信息,非常精确的定位到出现问题的位置,对应我们修改问题代码非常的方便实用。