序言:我们经常需要定位测试人员或者客户(已上线app)的app使用crach log,并作出修复。
收集crash log有很多方法,可以用很多开源的第三方库,比如KSCrash,plcrashreporter,CrashKit,QuincyKit等,也可以用一些公司提供的统计服务,比如友盟,听云,Crashlytics,Hockeyapp,Bugly。
Snip20170503_4.png
看到这个log,需要符号化,才能知道是那个函数,哪一行出现了crash;
以下是简要步骤:
-
拿到.app.dSMY和.app文件放到一个目录下;(必须确保两者是一致的,uuid相同,并且和crash log中的uuid相同,这可以用命令查看:DSMY的UUID:dwarfdump --uuid xxxx.app.dSYM/Contents/Resources/DWARF/xxxx;APP的UUID:dwarfdump --uuid xxxx.app/xxxx);
-
进入该目录后,运行命令:atos -arch armv7 -o xxxx.app/xxxx 0x4f8b3;如果只有.app.dSMY文件时运行:atos -o xxxx.app.dSYM/Contents/Resources/DWARF/xxxx 0x4f8b3 或者dwarfdump --arch=armv7 --lookup 0x4f8b3 xxxx.app.dSYM;
3 . 这样就可以定位到相关代码了。
备注:使用dwarfdump命令需要安装小工具——dwarfdump;
网友评论