若一个App没有加入Crashlytics或者Buggly这些崩溃日志监控,那么我们在App崩溃的时候如何获取崩溃信息呢?
此时我们可以通过symbolicatecrash工具对手机日志来进行分析定位,需要以下一些步骤:
一、获取crash日志文件
1.手机直接获取日志
在手机 设置->隐私->分析->数据分析 中找到对应App(文件名为App设置的product name),打开文件,右上角可以分享导出文件,分享出来的文件改一下后缀为.crash
2.使用iTools导出日志
使用iTools的工具箱里面的崩溃日志导出对应的.ips文件,改后缀为.crash
3.使用Xcode导出
设备连接Xcode,选择“Window->Devices and Simulators”,选择左侧设备,点击中间的“View Device Logs”,同理,选择对应App(文件名为App设置的product name),右键“Export Log”即可,此处导出的文件为.crash文件。
二、获取dSYM文件
1.Xcode获取
Xcode在archives时候,都会生成一个对应的dSYM文件,我们直接去获取app对应的dSYM文件就好;打开App工程,点击“Window->Organizer”,里面有你此工程archives过的记录,找到对应的,右键“show in finder”,对应文件右键"显示包内容",在dSYM文件夹下的.app.dSYM就是我们要获取的dSYM文件了。
2.App Store Connect获取
如果App已经上架,并在上架的时候选择提交过dSYM,那么还可以从App Store Connect获取,登录选择App,进入“活动”页签,“所有构建版本”,选择对应版本,点击app版本号,会出现包的详细信息,右下角有“包含符号”,若有提交的话,此处可以下载dSYM文件
三、symbolicatecrash工具
symbolicatecrash工具是Xcode自带的工具,我们在中断输入: find /Applications/Xcode.app -name symbolicatecrash即可找到工具
四、crash日志分析
将crash文件、dSYM文件以及symbolicatecrash工具拷贝到同一个目录,cd进入此目录,然后输入命令:
./symbolicatecrash (你导出的崩溃日志).crash (导出的dSYM文件).app.dSYM > (解析后的crash文件).crash
ps:运行上面的命令后可能会报错:“Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 53.”,如果出现错误,再输入:export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
接着再输入一次 ./symbolicatecrash (你导出的崩溃日志).crash (导出的dSYM文件).app.dSYM > (解析后的crash文件).crash 这个命令就可以了。