iOS项目集成Reveal

Reveal是一款UI调试工具,在iOS开发过程中可查看UI的层级关系并可动态修改界面,可以有效提高开发效率。这篇文章主要介绍如何把Reveal集成到实际的项目中。

一、Reveal主要有两种集成方式:

1、framework集成(可忽略,直接看第二点)

(1)打开Reveal,选择 Reveal --> Help --> Show Reveal Library in Finder --> iOS Library

iOS项目集成Reveal_第1张图片
iOS项目集成Reveal_第2张图片

(2)把Reveal.framework导入到项目中

iOS项目集成Reveal_第3张图片

(3)配置Target,Target --> Build Setting --> Other Linker Flags 添加以下4项:

iOS项目集成Reveal_第4张图片

(4)运行项目 --> 打开Reveal --> 选择连接设备

iOS项目集成Reveal_第5张图片

项目的UI图层就可以出来了。

iOS项目集成Reveal_第6张图片

这种方法有几个弊端:1、需要配置项目的Build Setting,修改Other Linker Flags,多人协作开发的话如果有人没有配置就会编译出错;2、如果不留意容易打包的时候把Reveal的framework也打包进去,增大包的体积。

以下推荐另一种集成方法。

2、LLDB集成(推荐!!)

(1)运行项目 --> 点击Pause program execution。

iOS项目集成Reveal_第7张图片

(2)在LLDB依次输入以下两条命令

# expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)

# expr (void)[(NSNotificationCenter *)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];

第一条命令用于加载Reveal的动态链接库;

第二条命令用于启动Reveal调试服务。

输入两条命令后,如果LLDB打印 “ INFO: Reveal Server started ” 即成功启动Reveal服务,点击Continue即可。

iOS项目集成Reveal_第8张图片

虽然说输入两条命令即可启动服务,但是每次重新启动项目后都要重新输入这么长的命令也是挺苦恼的,下面介绍一种方法可以非常方便地使用Reveal的命令。

二、设置LLDB命令别名

打开终端,输入 vim ~/.lldbinit ,然后输入以下内容:

command alias reveal_load_sim expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)

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

reveal_load_sim为模拟器加载reveal调试用的动态链接库

reveal_start启动reveal调试功能

reveal_stop结束reveal调试功能

iOS项目集成Reveal_第9张图片
输入 :wq 保存

这时候打开Xcode,在LLDB里面就会有输入提示了。

iOS项目集成Reveal_第10张图片

按顺序输入reveal_load_sim --> reveal_start 即可达到上面的效果。


参考资料

iOS开发中集成Reveal

UI调试神器 for ios:Reveal的使用与破解

你可能感兴趣的:(iOS项目集成Reveal)