PonyDebugger是git上一个利用Chrome开发者工具来进行iOS客户端远程调试的工具包,与其他远类型程调试工具相比,它有着非常IMBA且又非常实用的功能:网络活动监控、查看CoreData对象、视图层级查看等,下面让我们看看如何驾驭这只神奇的小马驹吧!
功能
PonyDebugger提供了四个特色的功能,包括:监控网络、CoreData对象查看、视图分层查看和远程日志打印。
监控网络
所有通过NSURLConnection进行的网络访问,都会被监测到,也就是说那些基于NSURLConnection的第三方网络组件,如AFNetworking,都可以被监测到,而且看以方便的查看到:访问类型、接口名、错误类型,返回类型、网络延时等信息,非常强大!
CoreData对象查看
这个功能就不必多说了,你可能见过很多方便的sqlite工具,比如FireFox的SQLite Manager插件,但是这样直接查看CoreData对象的不多见吧?
视图分层查看
这个功能对于前端开发者来说是最重要不过了,PonyDebugger将你应用的视图关系以xml的形式分层展示出来,选择相应xml,会在客户端进行对应视图的高亮响应,xml的属性信息可以在客户端进行配置,而且竟然支持直接修改xml属性值,而客户端UI会实时做出改变!
远程日志打印
这个可能你觉得没什么亮点,上次介绍的NSLogger可是专门做这件事的,不过PonyDebugger的这一功能也不会让你失望,它的语句类型不多,主要分为PDLog()
和PDLogObjects()
,PDLog()
负责打印字符串信息,PDLogObjects()
负责打印对象和数组。不过正如下图所示,PDLogObjects()
打印出的对象也是分层展示的,比如查看一个数组中自定义modal对象的一个属性的值这样的事情就非常轻松,而且不用你再回Xcode中加断点,这是不很爽啊!
配置
配置工作包括配置服务器端和客户端。
配置服务器端
- 安装Xcode’s Command Line Tools,在之前的版本中可直接在Xcode中安装,如果你的环境更新到10.9和Xcode5之后,不妨参考这里进行安装,这是之前10.9更新CocoaPods时发现的一个问题。
- 在终端执行以下命令,进行安装
1 2 |
|
注:如果在安装过程中报出如下错误:
1 2 3 4 5 6 7 8 |
|
可以参考这里的解决方法,在我安装的过程中也遇到了这个问题,按照提示是pip
安装时没有配置--allow-external pybonjour --allow-unverified pybonjour
。
- 成功安装后,在终端输入
ponyd serve --listen-interface=127.0.0.1
,打开监听。 - 最后打开浏览器,输入地址
http://localhost:9000
,如果访问到如下结果,说明安装成功。
配置客户端
由于现在PonyDebugger支持CocoaPods安装了,可以直接在你的podfile中加入:
1
|
|
然后,安装一下就可以了。
1
|
|
不了解CocoaPods的童鞋可以参考下唐巧大哥的这篇介绍,希望手动加入PonyDebugger的童鞋可以参考官方文档中Manual Installation一项。
使用
相比起搭建环境,PonyDebugger的使用非常简单。你需要在你应用的AppDelegate.m
的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}
方法中加入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
小结
本文可以作为PonyDebugger
一个入门级的文档。相比上一次介绍的NSLogger
来说,PonyDebugger
的展示方式和查看方式更加直观和方便,作为通用的调试工具非常不错,而NSLogger
拥有强大的日志记录功能,但想要发挥NSLogger
的作用,对程序员的经验和能力就有了一定的要求,所以两种工具各有千秋,大家各取所需就好。