ios 命令行打印日志分享

本文探讨了在iOS开发过程中,如何优化日志记录及分享功能,以提高开发者排错效率,同时确保良好的用户体验。通过将日志写入沙盒,并利用UIDocumentInteractionController进行分享,解决了线上bug记录不全的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个app 在未正式发布之前 会有很多问题
如果是崩溃问题,则有线上的bugly来查看崩了日志
只要集成了bugly 就可以查看日志了

但这样存在弊端,一是网络不好的时候 日志没有记录到
二是很多时候日志只有崩溃的这一个时刻,没有上下文
环境,如果不是一般性错误,很难知道其具体原因
而我们在开发的过程中,能够时时刻刻看到打印的消息
同时还支持断点的调试功能,因此排错非常快

我希望将类似的东西增加到项目中,最开始是想按照悬浮窗
的形式出现,点击就可以看到最新的日志,webview 的vsconcle
就是这种思路的

我在网上找了一个封装好的类似控件尝试了一下,demo跑起来是
可以的,但加入到项目中就发现问题特别严重,因为日志的数据量
是相当庞大的,ui刷新的显示在小屏幕上速度飞快,会造成机器的卡顿
用户体验相当差。

那么有没有别的解决办法呢?

我们知道sdk 开发,sdk封装好了给用户,用户如果对sdk的某项功能
提出了质疑,那么sdk厂商是相信自己的代码还是用户呢,其实sdk厂商
都提供了日志写入的服务,将每一步操作都一丝不苟的写入用户提供的路径
然后让用户从沙盒或者其他地方导出给sdk厂商,以此来判断用户所处的情况,再判断sdk是否出了问题。

那么ios 也是能够将日志写入沙盒的,就是捕获终端的所有输入,再加上
崩溃日志,把这些重定向到你的沙盒就完了。

stdout

可以关注一下这个两个系统打印,重定向到你的沙盒。

写入沙盒后难道每次都要把手机给开发者,让开发者把日志从沙盒里面拷贝
出来么?

其实不用的,只需要给你的日志增加一个分享的功能即可,苹果官方就有

UIDocumentInteractionController

这个就是专门用来做分享的类,你只要找到你对应的日志,分享给你的电脑
,你自己就可以看了,分享给开发者,就免去了开发者从你手机中拷贝你日志的时间浪费。

除此之外,为了防止在项目中用户体验不好,可以把日志分享加到摇一摇中,避免阻挡用户视觉,而日志总是在不断记录的,所以每次日志加个时间戳,就可以看到是什么时间点记录的日志,防止日志过大,项目中可以控制开始日志记录和结束日志记录来防止不必要的日志记录,造成app缓存越来越大的问题,当然可以做7天日志删除这类功能,不过都是锦上添花了。

这个是我整个日志分享从思考到实现的整个过程。

最后留下demo传送门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值