<p align="center" style="font-size:11px;">
<img src="https://raw.githubusercontent.com/alibaba/youku-sdk-tool-woodpecker/master/woodpecker_logo.png" width="400">
</p>
啄幕鸟,即手机屏幕上的啄木鸟,专抓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.网络流量:查看发送、接收网络流量。
<p align="center" style="font-size:11px;">
<img src="https://raw.githubusercontent.com/ZimWoodpecker/WoodpeckerResources/master/woodpecker_all_plugins.PNG" style="border:1px solid black" height="500">
<br>啄幕鸟插件
</p>
# 接入
## 版本要求
iOS 8.0及以上。
## Pod接入
> ```
>pod 'YKWoodpecker'
> ```
推荐更新使用最新版本啄幕鸟,现最新版本:1.2.8。
## Get Started
##### 打开啄幕鸟
> #import "YKWoodpecker.h"
> ```
> // 方法监听命令配置JSON地址 * 可选,如无单独配置,可使用 https://github.com/ZimWoodpecker/WoodpeckerCmdSource 上的配置
> [YKWoodpeckerManager sharedInstance].cmdSourceUrl = @"https://raw.githubusercontent.com/ZimWoodpecker/WoodpeckerCmdSource/master/cmdSource/default/cmds_cn.json";
>
> // Release 下可开启安全模式,只支持打开安全插件 * 可选
>#ifndef DEBUG
> [YKWoodpeckerManager sharedInstance].safePluginMode = YES;
>#endif
>
> // 设置 parseDelegate,可通过 YKWCmdCoreCmdParseDelegate 协议实现自定义命令 * 可选
> [YKWoodpeckerManager sharedInstance].cmdCore.parseDelegate = self;
>
> // 显示啄幕鸟
> [[YKWoodpeckerManager sharedInstance] show];
>
> // 启动时可直接打开某一插件 * 可选
>// [[YKWoodpeckerManager sharedInstance] openPluginNamed:@"xxx"];
>
> ```
更多参见Demo工程。
## 运行Demo
clone后在工程目录'pod update',完成后即可打开demo workspace运行。
## 安全说明
啄幕鸟不依赖任何第三方库或数据。啄幕鸟代码中没有使用任何+load、+initialize等方法,啄幕鸟入口不显示则不会执行任何代码。如需线上使用啄幕鸟,应保护好开启入口,啄幕鸟支持安全模式,可在Release下开启安全模式,只支持打开安全插件,现有安全插件:UI检查、系统信息、触点显示。扩展插件注册时设置isSafePlugin=YES即可声明为安全插件,详见插件开发。
> ```
> // Release 下可开启安全模式,只支持打开安全插件 * 可选
>#ifndef DEBUG
> [YKWoodpeckerManager sharedInstance].safePluginMode = YES;
>#endif
> ```
# 插件功能介绍
## 1. UI检查插件
UI检查插件包含控件拾取和测距条两个工具,在屏幕上点一点即可获取布局、颜色、字体、圆角、图片URL等信息。
<p align="center" style="font-size:11px;">
<img src="https://raw.githubusercontent.com/ZimWoodpecker/WoodpeckerResources/master/woodpecker_ui_check_demo.gif" style="border:1px solid black" height="500">
<br>UI检查插件
</p>
### 1.1 控件拾取
控件拾取根据手指在屏幕上的点击坐标,递归遍历View层级,获取包含触点坐标的最靠前的UI元素,在屏幕上直观显示相关信息,也可帮助了解UI布局、定位UI代码。
#### 控件拾取功能
◆ 单击拾取当前点击的view,双击可跳过当前view,以拾取下层view,以防止view被同级view挡住拾取不到。
◆ 三个手指同时点击可切换拾取模式,只拾取响应链上的view,以防止屏幕上盖了一层view,影响拾取。
◆ 拾取后用线条和标注显示被拾取view的大小、位置,或与之前选中view的间距,简单直观,无需计算。
◆ 控件拾取信息区显示控件的类名、大小、透明度、圆角、hidden、文本、字体、颜色、图片尺寸、图片URL等信息,方便地获取运行时数据。
◆ 信息区提供父层按钮,点击拾取superview,层层拾取,即可了解UI布局,并根据view类名快速定位代码。
◆ 信息区根据选中元素的不同,提供文本、图片等按钮,以复制文本,查看、导出图片。
◆ 单击信息区可打开分享面板导出信息。
◆ 双击信息区可查看对象全部属性、成员变量。
<p align="center" style="font-size:11px;">
<img src="https://raw.githubusercontent.com/ZimWoodpecker/WoodpeckerResources/master/woodpecker_demo_ui_check.png" style="border:1px solid black" height="500">
<br>UI检查-拾取控件
</p>
#### 控件拾取功能扩展
可以通过系统通知获得拾取到的控件并在信息区域显示自定义信息,格式如下:
> ```
>extern NSString *const YKWPluginSendMessageNotification; /**< 插件发送信息通知 = @"YKWPluginSendMessageNotification" > */
>extern NSString *const YKWPluginReceiveMessageNotification; /**< 插件接收信息通知 = @"YKWPluginReceiveMessageNotification" > */
>/*
> 控件拾取插件:
> 发送格式:
> notification.object = @"ProbePluginNotification";
> notification.userInfo[@"view"] = 拾取到的UIView;
> 接收格式:
> notification.object = @"ProbePluginNotification";
> notification.userInfo[@"msg"] = 需要显示的信息;
>*/
>
> ```
### 1.2 对象查看
App中所有的对象通过继承、代理、属性等关系,可以看作一个或多个连通图,从一个对象开始,可以查看到连通图里任一个对象的属性、成员变量,获取运行时数据,以定位问题。
#### 对象查看功能
◆ 双击控件拾取的信息区即可打开对象查看,对象查看会显示拾取对象的属性、成员变量列表。
◆ 一个对象的属性、成员变量一般声明在不同的类中,一个列表只显示对象在某一类中声明的属性、成员变量,点击superclass即可查看父类中的声明。
◆ 在属性、成员变量列表中单击查看下一对象,双击打印对象description。
◆ KVC取值:在日志控制台中输入 k key.path 格式即可对最右侧列表对象KVC取值,如输入 k layer.cornerRadius 即可读取圆角大小。
◆ 点击“屏显控件”可将UIView及其子类对象在控件拾取中显示。
◆ 可在对象查看中使用po命令,详见po命令介绍。
<p align="center" style="font-size:11px;">
<img src="https://raw.githubusercontent.com/ZimWoodpecker/WoodpeckerResources/master/woodpecker_demo_object_check.png" s
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备等 操作系统:LInux、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备
资源推荐
资源详情
资源评论
收起资源包目录
Objective-C 组件化项目主工程.zip (930个子文件)
Makefile.am 7KB
Makefile.am 2KB
Makefile.am 2KB
Makefile.am 1KB
Makefile.am 1KB
Makefile.am 720B
Makefile.am 622B
types.h.bak 2KB
enc_mips_dsp_r2.c 80KB
dec_neon.c 68KB
vp8l_enc.c 67KB
vp8l_dec.c 59KB
anim_encode.c 57KB
enc_sse2.c 53KB
dec_mips_dsp_r2.c 50KB
quant_enc.c 48KB
dec_sse2.c 47KB
histogram_enc.c 46KB
picture_csp_enc.c 43KB
lossless_enc.c 42KB
dec_msa.c 40KB
lossless_mips_dsp_r2.c 38KB
enc_neon.c 36KB
enc_mips32.c 35KB
backward_references_enc.c 34KB
yuv_sse2.c 33KB
enc_msa.c 32KB
demux.c 31KB
predictor_enc.c 31KB
idec_dec.c 30KB
lossless_sse2.c 30KB
webp_dec.c 29KB
backward_references_cost_enc.c 29KB
lossless_enc_sse2.c 29KB
frame_enc.c 28KB
upsampling_msa.c 28KB
frame_dec.c 28KB
dec_mips32.c 27KB
dec.c 27KB
lossless_neon.c 26KB
lossless.c 24KB
enc.c 24KB
dec_clip_tables.c 23KB
yuv_sse41.c 23KB
tree_dec.c 23KB
io_dec.c 23KB
vp8_dec.c 22KB
tree_enc.c 21KB
muxedit.c 21KB
filters_mips_dsp_r2.c 21KB
muxread.c 19KB
alpha_processing.c 18KB
cost.c 18KB
analysis_enc.c 18KB
muxinternal.c 17KB
rescaler_msa.c 17KB
anim_decode.c 16KB
rescaler_mips_dsp_r2.c 16KB
upsampling_neon.c 15KB
alpha_enc.c 15KB
cost_enc.c 15KB
upsampling_sse2.c 15KB
upsampling.c 14KB
iterator_enc.c 14KB
lossless_enc_mips32.c 14KB
rescaler_sse2.c 14KB
webp_enc.c 14KB
alpha_processing_sse2.c 14KB
lossless_enc_mips_dsp_r2.c 14KB
huffman_encode_utils.c 13KB
rescaler_mips32.c 13KB
upsampling_mips_dsp_r2.c 13KB
enc_sse41.c 13KB
upsampling_sse41.c 13KB
lossless_msa.c 13KB
filters_sse2.c 13KB
syntax_enc.c 12KB
filters_neon.c 11KB
yuv_neon.c 11KB
thread_utils.c 11KB
bit_writer_utils.c 11KB
yuv.c 11KB
buffer_dec.c 10KB
utils.c 10KB
alpha_processing_mips_dsp_r2.c 10KB
picture_rescale_enc.c 10KB
filters.c 9KB
quant_levels_dec_utils.c 9KB
picture_enc.c 9KB
bit_reader_utils.c 9KB
filter_enc.c 9KB
picture_tools_enc.c 9KB
picture_psnr_enc.c 8KB
token_enc.c 8KB
huffman_utils.c 8KB
yuv_mips_dsp_r2.c 8KB
rescaler.c 8KB
alpha_dec.c 8KB
rescaler_neon.c 7KB
cost_mips32.c 7KB
共 930 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功