# OCDebugger
OCDebugger 是一个非常易用的应用开发调试工具, 你可以使用浏览器或者iPhone本身去调试你开发的应用。这只是一个客户端库,我们也同时开源了Web应用的库(OCDServer),OCDServer会接收所有从iOS客户端发送的数据。你可以将OCDServer安装到自己的服务器上,当然,我也提供了一个公共的OCDServer服务器,请放心使用,这个服务器足够稳定。
和**PonyDebugger**不同的是,OCDebugger并不要求开发者使用谷歌浏览器开发者工具去调试应用,你只需要使用Safari、Chrome、Firefox甚至IE都可以。
OCDebugger 使用MIT开源协议.
## 功能
### 远程和本机调试面板
要查看调试数据,你可以在任何时候摇一摇你的手机,或者打开Web应用 [打开链接](
http://ocdebugger.sinaapp.com/dashboard/index.html?access=1,testToken)
cvpic('https://raw.githubusercontent.com/PonyCui/OCDebugger/master/README_Resources/0.png','','700','700')
### HTTP连接监听器
OCDebugger 使用 NSURLProtocol 方法嗅探所有网络连接。你只需要打开浏览器,静候网络连接信息到来。
cvpic('https://raw.githubusercontent.com/PonyCui/OCDebugger/master/README_Resources/1.png','','700','700')
由于OCDebugger使用的是Foundation Framework提供的方法嗅探网络,这就意味着所有的http/https连接都可以被感知到。
所有流行网络封装库都可以被嗅探到,包括AFNetwoking/SDWebImage。
但是,如果网络库是使用更底层的CFNetwork或者C++封装的话,OCDebugger连接监听是不会有任何作用的。
cvpic('https://raw.githubusercontent.com/PonyCui/OCDebugger/master/README_Resources/2.png','','700','700')
cvpic('https://raw.githubusercontent.com/PonyCui/OCDebugger/master/README_Resources/3.png','','700','700')
OCDebugger 会将小于32K的数据发送到服务器, Web应用会尝试将内容转换成美化的JSON样式。请求、回应的头部也会被捕获到。
你可以修改请求的头部和内容,然后点击"Resend"按钮重新发送请求。
### 远程和本地 Log
OCDebugger 使得 log 变得更轻松简单。 你只需要接照正常的安装步骤就可以启用OCDLog,所有的NSLog()都会转发到服务器和本地,而同时NSLog的日志也会同时出现在控制台。
TODO:我们希望做得更完美,我们希望能远程地进行类似lldb一样的调试。
_**所有的log都是实时传输的。**_
cvpic('https://raw.githubusercontent.com/PonyCui/OCDebugger/master/README_Resources/4.png','','700','700')
cvpic('https://raw.githubusercontent.com/PonyCui/OCDebugger/master/README_Resources/5.png','','700','700')
### 调试点
OCDebugger 发现了一种更快捷的调试方法,调试点!
试想,在程序运行的过程中,如果你想替换某个变量,你会怎么做呢?你会在服务器上面建一个JSON文件?你会在本地用复杂的代码实现?
以下是我们的方法。
```
- (BOOL)testPoint {
OCDValuePoint(@"test", YES);
return NO;
}
- (NSString *)testText {
OCDObjectPoint(@"How", @"How?");
return @"What?";
}
```
我们添加了各一个调试点到```testPoint```和```testText```,如果我们将这些调试点设为“生效”,那么它就会提前地返回我们指定的值或者对象。
```OCDValuePoint```和```OCDObjectPoint```的不同之处在于, ```OCDValuePoint``` 返回 bool/int 值, ```OCDObjectPoint``` 返回对象.
我们可以在远程或者本机对调试点设置“生效”或者“失效”
cvpic('https://raw.githubusercontent.com/PonyCui/OCDebugger/master/README_Resources/6.png','','700','700')
cvpic('https://raw.githubusercontent.com/PonyCui/OCDebugger/master/README_Resources/7.png','','700','700')
### 终端
OCDebugger 可以通过类似shell的命令操控文件,以下命令是被支持的。
```
cd.. cd directory cd /
ls ls directory
rm file rm directory rm *
vi file use :w save changes use :q quit vi mode
clear
```
cvpic('https://raw.githubusercontent.com/PonyCui/OCDebugger/master/README_Resources/8.png','','700','700')
### 更多功能
我们期待开发更多方便开发者的功能,加个星关注我们。
##安装
###要求
* iOS 6.0 或者更高版本 (我没有在iOS6下测试过)
* Xcode 6.3
###配置
####CocoaPods
[CocoaPods](
http://cocoapods.org/) 是一个版本依赖工具,强烈建议使用.
使用以下命令安装.
$ sudo gem install cocoapods
$ pod setup
创建 Podfile 文件
platform :ios, '6.0'
pod 'OCDebugger'
如果你希望使用最新版本的代码,请使用以下命令
pod 'OCDebugger', :git => 'https://github.com/PonyCui/OCDebugger.git'
命令行下执行
$ pod install
####人工安装
不建议使用人工安装方式
##使用方法
将 ```OCDPrefixHeader.h``` 复制到你的工程目录下,这个文件不能放置在Pods文件夹中.
import ```OCDebugger.h``` 和 ```OCDPrefixHeader.h``` 到你的PrefixHeader.h里面
使用浏览器,打开 [打开链接](
http://ocdebugger.sinaapp.com/dashboard/index.html?access=1,testToken) , 申请一个appid.
在任何位置输入以下代码.(推荐在 applicaton:didFinishLaunchingWithOptions:)
```
[OCDebugger setAppID:@"yourappid" appToken:@"yourapptoken"];
[OCDebugger setEnabled:YES];
```
高歌吧~~~~万马奔腾
## 注意
在你发布应用之前,你必须移除OCDebugger,并执行pod update。
OCDebugger 不能使用在生产环境上。