以前在51CTO写的博客,转载到这里
1、导出Log文件
将手机连接到mac上,打开Xcode,window-Devices-This Device,就能刷新出所有本机crash时留下的日志文件,选择你的crash文件,右键-Export Log到User/crash目录下
2、获取app和dsYM文件
Xcode-window-organizer-Archives就能看到我们曾经archive过的所有文件,找到crash对应的archive文件,右键-show in finder-右键-显示包内容,将dSYMs/xxxx.dSYM和Products/Applications/xxxx.app拷贝到User/crash目录
3、获取symbolicatecrash文件
symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的一堆地址替换成代码相应位置。symbolicate位于
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
如果找不到就执行
find /Applications/Xcode.app -name symbolicatecrash -type f
将symbolicatecrash文件拷贝到/User/crash目录下
4、分析崩溃日志
打开终端依次输入以下命令
~$ cd ~/crash
~$ export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
~$ ./symbolicatecrash xxxx.crash xxxx.app.dSYM > report.crash
打开report.crash,应该有如下的显示效果
我们就能轻松知道倒是哪一行代码出错导致的崩溃了