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];
