在ios开发中会碰到的很多crash问题,如果Debug调试模式的话,我们可以往往很容易的根据log的输出定位到导致crash的原因,但对于已经上线的应用,或者是release环境包导致的crash,我们就需要一些特殊的手段来通过crash log进行分析定位了。
将产生错误日志的App的.app和.dSYM复制到某个指定目录
控制台进入目录
分别输入:
dwarfdump --uuid YourApp.app和warfdump --uuid YourApp.app.dSYM查看UUID是否与日志上的UUID一致
解释内存地址
Thread 0 Crashed: 0 libobjc.A.dylib 0x00003ec0 objc_msgSend + 24 1 MyApp 0x000036d2 0×1000 + 9938
我们得到了用户发生崩溃情况的内存地址:0x000036d2
命令行输入:dwarfdump –-arch armv6 MyApp.app.dSYM --lookup 0x000036d2 --debug-info
//dwarfdump --arch=armv7 --lookup 0x1736d9 "$dSYMPath"
在行的最后面即可看到错误信息