PonyDebugger是基于iOS系统开发的远程调试工具包,主要用来调试ios应用的网络流量和数据存储,还提供ios客户端库来调试通过NSURLConnection和其Core Data堆栈发送的数据。允许在任何设备和虚拟机上进行数据调试。需要的开发人员可以下载!
软件特点
1:实时的检测应用与网络的交互情况
2:查看应用内Core Data的数据变化
3:实时反馈UI层的层级情况
软件功能
1、网络流量调试
PonyDebugger通过ponyd,PonyDebugger的代理服务器,发送您的应用程序的网络流量。您可以使用像一个网站在谷歌浏览器,你将如何调试网络流量网络流量督察的网络工具来调试。
PonyDebugger转发网络流量,并且不嗅探网络流量。这意味着,在一个安全协议(HTTPS)流量发送调试的。
2、核心数据浏览器
核心数据浏览功能允许您注册您的applcation NSManagedObjectContexts,并浏览所有的实体和管理的对象。您浏览Chrome开发人员工具IndexedDB的部分在“资源”选项卡中的数据。这些都是只读商店的那一刻。有计划在未来的版本中实现数据的突变。
3、查看层次调试
PonyDebugger显示您的应用程序的视图层次结构元素标签的Chrome开发人员工具。当您移动通过XML树,相应的意见归纳在您的应用程序。您可以编辑显示的属性(即框架,α,...),直接从“元素”选项卡,你可以改变属性显示给一个数组PonyDebugger的UIView的关键路径。删除元素面板中的一个节点,将删除该节点从视图层次。最后,当一个视图被突出显示时,你可以移动或调整应用程序使用平移和捏的手势。
可以输入一个“检查”模式,点击“开发人员工具”窗口左下角的放大镜。在这种模式下,利用iOS应用中的视图元素“面板中选择相应的节点。您也可以按住并拖动你的手指,看到的不同意见强调。当你抬起你的手指,突出显示的视图将被选中的元素“面板中。
目前,只有一个子集的元素“面板的操作可能从已被执行。有显着的空间继续工作和改善,但目前的功能仍然应该是有用的。
4、远程记录
PonyDebugger可以让你远程登录文本和对象转储通过的PDLog和PDLogObjects的功能。这让LoggedIn来NSLog的内容量减少,同时也允许你动态反思对象。
PonyDebugger使用教程
快速开始
服务器端
1.安装 Xcode's Command Line Tools
2.在shell里面执行下面命令
curl -skhttps://cloud.github.com/downloads/square/PonyDebugger/bootstrap-ponyd.py | \
python - --ponyd-symlink=/usr/local/bin/ponyd ~/Library/PonyDebugger
出现error的信息的话 可能就是需要管理员权限 去创建
用管理员 权限 登陆 去执行 命令 即可
3. 安装成功以后,在shell里面执行
ponyd serve --listen-interface=127.0.0.1
4. 打开你的浏览器输入地址
http://localhost:9000
看见此图就配置成功了:
下载framework,此framework 是根据Github源码进行编译的 在Xcode 5上 编译环境 arm64 ,armv7,armv7s 对源码 数据类型做了初步的64位兼容的
可以直接添加到工程里
添加link参数-Objc
在使用的地方 导入
#import
iOS端的PonyDebugger是单例模式存在,所以初始化方法如下:
之后再使用如下方法建立与服务端的连接:
PDDebugger *debugger = [PDDebugger defaultInstance];
[debugger connectToURL:[NSURL URLWithString:@"ws://localhost:9000/device"]];
以下开始具体功能
1:开启应用视图层级解析
[debugger enableViewHierarchyDebugging];
其中所看到的frame class等字段可以通过以下方法实现自定义是否需要在层级中显示,是以KVO形式获取的.
[debugger setDisplayedViewAttributeKeyPaths:@[@"frame",@"hidden",@"class",@"tag",@"alpha",@"userInteractionEnabled"]];
2:开启网络请求监听
[debugger enableNetworkTrafficDebugging];
开启后,可以设置为是否监听所有的网络请求:
[debugger forwardAllNetworkTraffic];
还是只监听某一个类网络请求:
[debugger forwardNetworkTrafficFromDelegateClass:[User class]];
3:开启Core Data数据浏览
[debugger enableCoreDataDebugging];
开启后,继续添加需要检测的CoreData上下文
[debugger addManagedObjectContext:[StackMobManager sharedInstance].keyManagedObjectContext];