GitHub: 啄木鸟,专抓App里的Bug

时光怂恿深爱的人放手 提交于 2020-08-12 04:40:40

hello,小伙伴们大家好,今天给大家推荐的是阿里推出的开源项目:youku-sdk-tool-woodpecker

啄幕鸟,即手机屏幕上的啄木鸟,专抓App里的Bug。啄幕鸟集合了UI检查、对象查看、方法监听等多种开发工具,通过拾取UI控件、查看对象属性、监听方法调用、App内抓包等,不依赖电脑联调,直接获取运行时数据,快速定位Bug,提高开发效率。啄幕鸟提供了插件化的工具平台,简便易用,零侵入、零依赖、易接入、易扩展。

功能简介

1.UI检查:快速查看页面布局、UI控件间距、字体颜色、UI控件类名、对象属性/成员变量、图片URL等。

2.JSON抓包:便捷JSON抓包工具,通过监听系统json解析抓包。

3.方法监听:Bug听诊器,可监听App中任意OC方法的调用,输出调用参数、返回值等信息,可以通过屏幕日志输入监听、KVC取值等命令,支持后台配置命令。

4.po命令:执行类似LLDB的po命令,在App运行时执行po命令,调用任意方法。

5.系统信息:查看各种系统名称、版本、屏幕、UA等信息,支持外部添加信息。

6.SandBox:查看沙盒文件,导出文件等。

7.Bundle:查看、导出Bundle目录中的内容。

8.Crash:查看Crash日志,需先打开一次Crash插件以开启Crash监控。

9.Defaults:查看、新增、删除User Defaults。

10.清除数据:清除所有沙盒数据、User Default。

11.触点显示:显示手指触控。

12.UI对比:支持将设计图导入到App中进行对比,并可画线、标注需修改的地方,方便UI走查。

13.查看图片资源:查看、导出App中的资源图片。

14.CPU:查看CPU占用。

15.内存:查看内存占用。

16.FPS:查看App帧率。

17.网络流量:查看发送、接收网络流量。

插件功能介绍


1. UI检查插件

UI检查插件包含控件拾取和测距条两个工具,在屏幕上点一点即可获取布局、颜色、字体、圆角、图片URL等信息。

在这里插入图片描述

1.1 控件拾取
控件拾取根据手指在屏幕上的点击坐标,递归遍历View层级,获取包含触点坐标的最靠前的UI元素,在屏幕上直观显示相关信息,也可帮助了解UI布局、定位UI代码。

控件拾取功能
◆ 单击拾取当前点击的view,双击可跳过当前view,以拾取下层view,以防止view被同级view挡住拾取不到。
◆ 三个手指同时点击可切换拾取模式,只拾取响应链上的view,以防止屏幕上盖了一层view,影响拾取。
◆ 拾取后用线条和标注显示被拾取view的大小、位置,或与之前选中view的间距,简单直观,无需计算。
◆ 控件拾取信息区显示控件的类名、大小、透明度、圆角、hidden、文本、字体、颜色、图片尺寸、图片URL等信息,方便地获取运行时数据。
◆ 信息区提供父层按钮,点击拾取superview,层层拾取,即可了解UI布局,并根据view类名快速定位代码。
◆ 信息区根据选中元素的不同,提供文本、图片等按钮,以复制文本,查看、导出图片。
◆ 单击信息区可打开分享面板导出信息。
◆ 双击信息区可查看对象全部属性、成员变量。







控件拾取功能扩展
可以通过系统通知获得拾取到的控件并在信息区域显示自定义信息,格式如下:

extern NSString *const YKWPluginSendMessageNotification;       /**< 插件发送信息通知 = @"YKWPluginSendMessageNotification" > */
extern NSString *const YKWPluginReceiveMessageNotification;    /**< 插件接收信息通知 = @"YKWPluginReceiveMessageNotification" > */
/*
控件拾取插件:
   发送格式:
   notification.object = @"ProbePluginNotification";
   notification.userInfo[@"view"] = 拾取到的UIView;
   接收格式:
   notification.object = @"ProbePluginNotification";
   notification.userInfo[@"msg"] = 需要显示的信息;
*/

安全说明

啄幕鸟不依赖任何第三方库或数据。啄幕鸟代码中没有使用任何+load、+initialize等方法,啄幕鸟入口不显示则不会执行任何代码。如需线上使用啄幕鸟,应保护好开启入口,啄幕鸟支持安全模式,可在Release下开启安全模式,只支持打开安全插件,现有安全插件:UI检查、系统信息、触点显示。扩展插件注册时设置isSafePlugin=YES即可声明为安全插件,详见插件开发。

#ifndef DEBUG
   [YKWoodpeckerManager sharedInstance].safePluginMode = YES;
#endif

开源地址:https://github.com/alibaba/youku-sdk-tool-woodpecker

感兴趣的小伙伴可以浏览一下这个开源项目。


今天的推荐不知道大家喜欢吗?如果你们喜欢话,请在文章底部留言或点赞,以表示对我的支持,你们的留言,点赞,转发关注是我持续更新的动力哦!

关注公众号回复:"1024",免费领取一大波学习资源,先到先得哦!


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!