iOS开发中集成Reveal

Reveal是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面。它类似Chrome的“审查元素”功能,我们不但可以在运行时看到iOS程序的界面层级关系,还可以实时地修改程序界面,不用重新运行程序就可以看到修改之后的效果。

在使用时,我们将Reveal连接上模拟器或真机上正在运行的iOS程序,然后就可以查看和调试iOS程序的界面。

下载安装

Releal官方提供试用版本,免费试用期是30天,功能和正式版没有差别.点此下载

配置Reveal

1、配置方式一

(1)启动Reveal,选择Reveal -> Help -> Show Reveal Library in Finder。

(2)在Xcode中打开iOS项目,将Reveal.framework拖到项目中,如果升级了Reveal,对应的Reveal.framework文件也要更新到对应的版本。

(3)选择Target -> Build Phases -> Link Binary With Libraries将Reveal.framework移除。经测试本步骤不是必须的

(4)在Xcode的Target -> Build Setting -> Other Linker Flags添加如下几个配置项

-ObjC -lz -framework Reveal

(5)运行项目,然后打开Reveal的界面,在左上角选择连接的设备

然后就可以看到实际的运行效果

2、配置方式二

Reveal官方介绍了好几种办法使Reveal连接模拟器,都需要修改工程文件。但如果修改了工程文件,就需要参与项目开发的所有人都装有Reveal,下面介绍一种比较方便的方式来集成Reveal,步骤如下:

首先打开Terminal,输入vim ~/.lldbinit创建一个名为.lldbinit的文件,然后将如下内容输入到该文件中:

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:0    x4], 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];

该步骤其实是为lldb设置了4个别名,为了后续方便操作,这4个别名意义如下:

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

reveal_load_dev为真机加载reveal调试用的动态链接库

reveal_start启动reveal调试功能

reveal_stop结束reveal调试功能

(1)Reveal连接模拟器

在AppDelegate类的application:didFinishLaunchingWithOptions:方法中,作如下3步操作(如下图所示):

1)点击该方法左边的行号区域,增加一个断点,之后右击该断点,选择“Edit Breakpoint”。

2)点击”Action”项边右的”Add Action”,然后输入“reveal_load_sim”

3)勾选上Options上的”Automatically continue after evaluating”选项。

(2)Reveal连接真机

要用Reveal连接真机调试,我们需要先把Reveal的动态链接库上传到真机上。由于iOS设备有沙盒存在,所以我们只能将Reveal的动态链接库添加到工程中。

1)点击Reveal菜单栏的”Help”->”Show Reveal Library in Finder”选项,可以在Finder中显示出Reveal的动态链接库:libReveal.dylib

2)调整libReveal.dylib的引用方式,这里我们只需要将libReveal.dylib文件拷贝到Sandbox中,但是我们在引入libReveal.dylib的时候Xcode默认是以Link Binary With Libraries的方式的,实际上应该是Copy Bundle Resources,所以应该先将libReveal.dylib从Link Binary With Libraries中移除掉,然后在Copy Bundle Resources中添加。

3)安装之前处理模拟器的方式,将配置文件改成reveal_load_dev.

启动后在控制台会出现如下内容:

参考资料

1、《使用Reveal来查看、修改、调试iOS应用》

2、《Integrating Reveal without modifying your Xcode project》

3、《Reveal查看任意app的高级技巧》

最近的文章

合理使用Python助力iOS开发

说明:本文并不是介绍关于Python如何使用或者是Python的语法知识的,重点是分享在开发中使用Python来减少重复性的劳动的思路。Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议 。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C...…

2015-06-07•Python继续阅读

更早的文章

使用Wax给你的应用程序打补丁

在iOS开发中经常遇到需要对已经上线的APP进行功能微调,或者是一些紧急的Bug修复。对于需要提交到AppStore的程序来说,每次审核的周期都会较长,在审核过程中很有可能因为各种原因被拒。由于Apple的限制,开发者无法在iOS上动态的加载Objective-C源码,使用脚本语言就可以在一定程度上解决这个问题。比如使用HTML+Javascript的方式,支付宝钱包的彩票等功能就是使用这一方式实现的。另外也可以使用Lua脚本来实现,最初我了解到的Lua是使用在游戏上面的,包括Angry ...…

2015-05-09•iOS继续阅读

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • iOS开发中集成Reveal Reveal 是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看...
    零度_不结冰阅读 281评论 0 0
  • Reveal是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面。它类似Ch...
    Chris_js阅读 531评论 2 2
  • 前言 Reveal(https://revealapp.com)是一个iOS程序界面调试工具。使用Reveal,我...
    忻凯同学阅读 873评论 0 1
  • Reveal破解版下载链接 Reveal集成有三种方法: CocoaPods集成(推荐) framework集成(...
    暮归倾城阅读 1,134评论 0 5
  • Reveal是一款UI调试工具,在iOS开发过程中可查看UI的层级关系并可动态修改界面,可以有效提高开发效率。这篇...
    oudushu阅读 1,128评论 0 3