新版Reveal的正确使用方式(1.6.3)
2016年8月17日
![]()
如果把和控件打交道比作是打副本的话,那Reveal就相当于是一件顶级的装备。
Reveal的强大
Reveal是一个很强大的iOS View Hierarchy工具,通过Reveal可以在开发中得到一些帮助:
- 帮助排查开发过程出现视图层级、坐标不正确的问题
- 实时修改某一个视图的颜色、坐标等属性
- 查看视图的具体约束,帮助解决约束冲突
- 保存正在调试APP的层级文件,便于协作交流
- 越狱机器上查看其它APP的层级、布局方式
错误的打开方式
早期使用Reveal的时候,在网上查看过一些博客,按照各位博主的方法,成功实现了在开发过程中调试无忧的目的。
你通常在早期博客里看到的使用方式是这样的:
通过 reveal_load_sim 为模拟器加载Reveal的动态库
通过 reveal_load_dev 为真机加载Reveal的动态库
...

然而… 在Reveal 1.6版本,好用吗?(・ω・)
正确的姿势
Reveal的集成姿势有三种:
文档见如上链接,本文不会累述(没错,我就是懒的介绍(๑˘ ₃˘๑)),本文只介绍使用CocoaPods的真机测试方式,以及全局Xcode模拟器的测试方式。
==> 真机📱
使用CocoaPods为真机测试集成Reveal非常简单,基本步骤如下:
- 项目目录下
$ vim Podfile - 加入
pod 'Reveal-iOS-SDK', :configurations => ['Debug'] - 安装Pod
$ pod install
安装完成后,你的工程就已经为真机Debug模式,配置好了Reveal使用所需要的设置,此时你Run起你的项目,就可以在Reveal上查看层级了。
==> 模拟器💻
相比于真机,我们在模拟器上运行的次数会更多,基本步骤如下:
- 增加一个系统断点,工程 View → Navigators → Show Breakpoint Navigator,点击左下角 + 号,选择Add Symbolic Breakpoint
- 在弹出的断点配置框中,设置Symbol为UIApplicationMain
- 点击Add Action(Debugger Command 模式)输入:
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0) - 勾选Automatically continue after evaluating actions选项
此时,Run后就可以利用Reveal查看层级了,不过这样每个工程都需要配置这个断点,很是麻烦,可以通过如下方式一劳永逸:
- 右键刚创建的断点
- 选择Move Breakpoint To → User
Done.
Finally
至此,终于可以用正确的姿势在真机、模拟器运行后,尽情的在Reveal上查看层级、修改属性啦!(≖‿ゝ≖)✧
注:如果对Reveal想更深入的了解,移步http://support.revealapp.com/