一.Reveal简介
Reveal是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面。它类似Chrome的“审查元素”功能,我们不但可以在运行时看到iOS程序的界面层级关系,还可以实时地修改程序界面,不用重新运行程序就可以看到修改之后的效果。
在使用时,我们将Reveal连接上模拟器或真机上正在运行的iOS程序,然后就可以查看和调试iOS程序的界面。
二.Reveal怎样在Xcode中使用
目前我知道有两种使用的途径
第一种使用的方法
1.打开Xcode和Reveal,将Reveal中的Reveal.framework拖到当前的工程当中
2.在工程中引用libz.tbd库
3.在工程中添加-ObjC
4.最后运行工程,选择当前的工程就可以
第二种使用的方法
1.首先打开Terminal,输入vim ~/.lldbinit创建一个名为.lldbinit的文件
2.输入
command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2);
command alias reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);
command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];
3.保存并退出文件 按下esc 输入 ":wq!"
该步骤其实是为lldb设置了4个别名,这4个别名意义如下:
1reveal_load_sim为模拟器加载reveal调试用的动态链接库
2reveal_load_dev为真机加载reveal调试用的动态链接库
3reveal_start启动reveal调试功能
4reveal_stop 结束reveal调试功能
5.然后,在AppDelegate类的application: didFinishLaunchingWithOptions:方法中,作如下操作
1添加断点,选择“Edit Breakpoint”。
2点击”Action”项边右的”Add Action”,然后输入“reveal_load_sim”
3勾选上Options上的”Automatically continue after evaluating”选项。
此时运行工程就可以在Reveal中查看了!
两种方法的区别第一种方法需要每次都在每个工程中作此操作,比较麻烦,并且在公司中使用svn或者git时要注意不能提交此修改,其实这一点是很痛苦的,因为当操作完第一种方法后svn.git上工程是有变换的,我们修改.plist或者增删文件工程也是有变化的所以导致无法去提交project.pbxproj修改,为了避免这种情况的发生你可以Check Out 两份代码一份导入Reveal一份不导入修改或者建议使用第二种方法!