引言:
PonyDebugger是一个很给力的iOS调试工具,它的监视器安装在Chrome浏览器下做为插件使用,通过监视器和PonyDebugger的iOS SDK相辅相成,可以很好的监视App的运作情况.它的突出的亮点功能如下:
1:实时的检测应用与网络的交互情况
2:查看应用内Core Data的数据变化
3:实时反馈UI层的层级情况
参考资料:
1:简单配置PonyDebugger
http://iiiyu.com/2013/01/14/simple-configuration-ponydebugger/
安装:
Github托管地址:PonyDebugger
PonyDebugger分为iOS端和服务端两个部分
iOS端安装的首先方式是CocoaPods.
服务端PonyDebugger Chrome插件的安装方式如下:
1: Xcode 的Command Line Tools 必须安装
2: 在Shell里面执行下面命令
curl -sk https://cloud.github.com/downloads/square/PonyDebugger/bootstrap-ponyd.py | \ python - --ponyd-symlink=/usr/local/bin/ponyd ~/Library/PonyDebugger
3: 安装成功以后,继续在Shell里面执行(注意:以后每次使用PonyDebugger服务端之前都需要在终端执行这行代码)
ponyd serve --listen-interface=127.0.0.1
没什么意外,显示出来的页面如下,即表示你已经成功安装服务端了
使用:
iOS端的PonyDebugger 是单例模式存在,所以初始化方法如下:
PDDebugger *debugger = [PDDebugger defaultInstance];
之后再使用如下方法建立与服务端的连接:
[debugger connectToURL:[NSURL URLWithString:@"ws://localhost:9000/device"]];
以下开始具体功能
1:开启应用视图层级解析
[debugger enableViewHierarchyDebugging];
开启后,可以在服务端中看到以xml文件形式生成的View层级情况,如图:
其中所看到的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];
以上三步的所有功能结果都将站在服务端
总结:
PonyDebugger为Debug带来了一些辅助,对于博主来说最为实用的是网络检测请求. 至于其他功能可能是习惯原因,还无法很顺手的用起来. 还有待继续探究.