该文章属于Anchoriter原创,转载请注明来源:<简书 — Anchoriter>
http://www.jianshu.com/p/a233d52510f7
本方法对Xcode和项目无侵入,更环保!
本文使用版本为Reveal1.6.5,其它版本未测试。
1.配置路径
打开Reveal,首先获取Reveal包文件中libReveal.dylib包的路径
打开方式:先找到你下载安装的Reveal,右键->显示包内容,获取libReveal.dylib路径
我得到的路径是
/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib
(可以将文件直接拖进终端中,很方便的拿到文件地址)
保存该路径备用,然后创建一个新的Xcode工程 11111.xcodeproj,可以在Main.storyboard里面拖几个控件,便于观看(这里我放了一个绿色按钮)。运行Xcode工程,等Xcode正常启动后点击暂停,进入LLDB模式。
- 接下来进入重点了
输入第一行命令(里面冒号中间的地址替换为你自己刚保存的地址) :
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void *)0)
等待响应后会显示一个不为0000000000的内容后,再输入第二条命令
expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
输入命令完毕后出现 INFO: Reveal Server started (Protocol Version 25).
就是配置成功了
再次点击暂停按钮,让程序正常运行起来。
打开我们的Reveal,选择刚才创建的项目,就能看到我们模拟器中的图层了。
模拟器上的界面改变后,我们只需要在Reveal中com+R刷新下就能看到新的界面图层了,不必再次输入命令。
2.修改命令
是不是感觉每次输入上面两条长长命令的话太让人烦了?这里有解决办法。我们在.lldbinit
里面设置这两个命令的别名。
打开终端输入 touch ~/.lldbinit
命令并回车,然后输入open ~/.lldbinit
命令并回车,在打开的文本编辑器中将下面内容粘贴进去,保存并关闭。
command anchoriter_reveal_load expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void *)0)
command anchoriter_reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
重启Xcode,然后暂停进入LLDB模式,分别输入我们的别名命令 anchoriter_reveal_load
和 anchoriter_reveal_start
来替代以前长长的命令