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",免费领取一大波学习资源,先到先得哦!

GitHub: 啄木鸟,专抓App里的Bug相关推荐

  1. 阿里出品的这个项目厉害了,专抓 App 里的 Bug

    [公众号回复 "1024",免费领取程序员赚钱实操经验] 大家好,我是章鱼猫. 今天给大家推荐的这个项目是「youku-sdk-tool-woodpecker」-- 啄幕鸟 iOS ...

  2. 【移动端debug-6】如何做一个App里的web调试小工具

    原文链接:如何做一个App里的web调试小工具 我们知道现在hybrid app非常流行,在这样的app里,h5页面是应用非常广泛的.相对于以往在pc端开发的网页,放在app里的网页由于无法直接使用桌 ...

  3. 【安卓安全】透明代理定向抓APP包

    参考了以下大佬的文章: 文章一 文章二 文章三 工具:iptables + redsocks2 + Charles 前期准备 配置charls证书 要使用charles抓https的流量,就需要正确配 ...

  4. 我是如何白嫖 Github 服务器自动抓取每日必应壁纸的?

    如何使用 Github 服务器自动抓取必应搜索的每日壁纸呢? 如果你访问过必应搜索网站,那么你一定会被搜索页面的壁纸吸引,必应搜索的壁纸每日不同,自动更换,十分精美.这篇文章会介绍如何一步步分析出必应 ...

  5. 华为 HMS 上线独立搜索服务;苹果 App Store 出现 Bug ;Ant Design 4.2.5 发布| 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...

  6. fiddler抓app包获取不到HTTPS请求的2个解决方案

    因为app要过等保(国家信息安全等级保护),要用到fiddler抓包. 碰到fiddler抓app包获取不到HTTPS请求,经验证发现以下2个解决方案可用.共享下. 原理解析: 安卓手机APP抓包时, ...

  7. 如何用技术手段“干掉”优酷、腾讯视频 App 里讨厌的广告?

    作者简介:互扯程序,某互联网公司 P8 级专家攻城狮,曾参与过央视全台网的研发工作.目前正在做车联网项目的云平台的架构设计与研发工作.平时喜欢打球游泳,偶尔发表一些技术文章,有个公众号叫「互扯程序」. ...

  8. 如何使用 Github Actions 自动抓取每日必应壁纸?

    Hello world : ) 微信搜「 程序猿阿朗 」.点赞再看,动力无限. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. 如何 ...

  9. Github上的iOS App源码 (中文)

    Github版 英文App地址 IOS源码网: http://www.codesky.net/ios/list-2.htm http://www.code4app.com/forum-2-1.html ...

最新文章

  1. GRE写作-政府官员必须执行人民意愿还是独立决策?
  2. Java(静态)变量和(静态)代码块的执行顺序
  3. 【Android】关于Android控件EditText的属性InputType的一些经验
  4. SAP云平台和SAP HANA Enterprise Cloud(HEC)的区别
  5. ScrollView中使用ListView
  6. 2018蓝桥杯省赛---java---B---3(复数幂)
  7. fold函数_Java中使用Map and Fold进行函数式编程
  8. android加一减一控件,Android的步进器(增加/减少值)控件?
  9. jpa初学 hibernate学习
  10. c语言vs2017链表出错,【C++单链表就地逆置】程序无error错误,求指点TAT。
  11. 操作系统知识--线程
  12. 文章标题怎么伪原创?火车头标题伪原创插件
  13. 计算机excel混合引用,excel绝对引用、混合引用和相对引用怎么用
  14. 进程管理(一)--进程管理的基本概念
  15. balancap/SSD-Tensorflow使用及训练预测自己的数据集
  16. org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lett
  17. 拖延症测试皮肤软件,桌面时钟软件
  18. 演讲实录(文字+视频)丨基于DevOps的质量左移与右移思考
  19. 系统业务逻辑书籍_企业应该如何建立自己的分销系统和分销团队
  20. H5图片高度根据宽度自适应

热门文章

  1. ADSP使用SNS_SPRINTF输出字符串log信息
  2. vue中报错 fns.apply is not a function
  3. 读取别的服务器的文件,java读取服务器文件
  4. xv-6 EX(学习路径 超全总结 持续更新中)
  5. MySQL正则表达式
  6. idea查找替换快捷键,批量处理
  7. SpringBoot整合FFmpeg进行视频分片上传(Linux)
  8. SAP MM采购申请审批-成本中心
  9. ⭐算法入门⭐《堆》中等03 —— LeetCode 373. 查找和最小的K对数字
  10. 计算机选做实验原理,实验一计算机组成原理