iOS真机crash Log 解析
来源:互联网 发布:有关修车的软件 编辑:程序博客网 时间:2024/06/05 18:11
相信每个做iOS开发的TX都应该不会对symbolicatecrash陌生,我们第一次遇到真机上产生的崩溃日志时,在网上搜到的大部分教程都告诉我们说要用symbolicatecrash来解析crash log,我信了,所以相当长一段时间内,我都是用这个工具来解析crash log的。
每次都去敲命令来解析crash log本身就是一件很蛋疼的事情,但这还不是麻烦的,最麻烦的是用symbolicatecrash还经常遇到问题:怎么crash log又解析失败了?怎么批量解析crash log?
问题出在方法上,实际上我们完全用不着symbolicatecrash的,因为Xcode中自带的organizer就是很好的解析crash log工具了。
举个例子,如果我们的应用是在自己的机器上编译生成的,把应用装在真机上如果有崩溃产生,把真机通过数据线连接到Mac电脑上,打开Xcode菜单上的Window——Organizer,找到设备的device logs项中的crash log,稍等片刻,你就会发现这里的crash log已经被自动解析过了(大部分情况会自动解析,如果不行请右键点击选择Re-Sysbomlicate)。
但是如果应用不是在自己的编译上生成的,你会发现organizer不会自动解析crash log(除了系统函数)。怎么在这种情况下也让organizer也能自动解析crash log呢?
其实之前的organizer之所以能自动解析你设备上的crash log,是因为它能根据spotlight的索引来找到对应的.app和dSYM文件,对于这一点,我的猜测是在自己的Mac电脑上编译生成应用时,系统自动对其进行了索引。这个索引应该是根据app uuid来索引的。这个uuid可以执行下面的命令得到:
dwarfdump —uuid YourApp.app/YourApp
dwarfdump —uuid YourApp.app.dSYM
如果要能解析出crash log,crash log中携带的uuid与dSYM文件的uuid必须与app uuid一致。
既然spotlight能自动进行索引,那是不是也可以手动进行索引呢?答案是能,这正是自动解析的关键。手动索引的命令是mdimport。比如,把iOS应用的.app和.dSYM文件放到一个文件夹中,执行命令mdimport foldername就可以。命令执行完成后再用刚才的organizer去查看crash log,你会发现也能自动解析了。
这意味着什么呢?意味着你把应用所有版本的.app和.dSYM文件放入一个专门的文件夹中,只要mdimpor这个文件夹,以后的organizer就能自动解析出你所有的crash log。
好处不仅仅是这一点。organizer还有一个import功能,借助这个功能,我们可以把其它Mac电脑上的crash log导入到自己电脑中的organizer,然后就可以自动解析。更好的是,用这个功能可以批量导入收集到的crash log,然后我们就可以批量解析所有的crash log。
比起用symbolicatecrash,这种方法简便了许多,从现在起,你可以抛弃symbolicatecrash了。但其实这还不是最好的方法,目前先进的方法是用crash report管理系统来管理所有的crash,比如使用QuincyKit, Crashlytics, Flurry等来进行管理,有时间自己也研究研究。
- iOS真机crash Log 解析
- iOS crash log 文件解析
- iOS_Pass iOS Crash log 解析
- 解析IOS崩溃日志(crash Log)
- 解析IOS崩溃日志(crash Log)
- 解析IOS崩溃日志(crash Log)
- 解析iOS崩溃日志(crash Log)
- 解析IOS崩溃日志(crash Log)
- crash Log- 解析IOS崩溃日志
- crash log 解析方法
- ios crash log
- IOS Crash Log分析
- ios crash log
- ios分析 Crash Log
- look ios crash log
- 获取 iOS crash log
- iOS Parse Crash Log
- ios crash log查看
- LeetCode 216. Combination Sum III
- Mybatis中SQL性能优化注意事项
- fabirc1.0商业正式版本源码解析10——文档翻译之Architecture
- SD卡写入linux镜像后存储变小
- Windows安装Composer出现Composer Security Warning警告的解决方法
- iOS真机crash Log 解析
- 【每天积累一点点】将PopupWindow显示在指定位置
- 安卓开发观察者模式应用-一个service通知多个activity更新ui的实现
- 【学习笔记】微信小程序页面路由
- Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程
- JobScheduler 详解二
- http1.1与http2.0
- 《Android开发中的颜色代码表》
- 文章标题