最近翻阅简书,看到之前有人介绍Injection Plugin for Xcode插件,直接修改某一行代码,F5一下就可以刷新,不用Com+R运行看效果了,节省了大量时间有木有啊,但是梦想是美好的,现实是残酷的,我安装了插件之后,修改了界面上的Label的显示内容,执行control+=,进度条闪过,但是界面没有改,这是什么鬼?难道是Xcode 7.3不支持,后来问了简书这篇文章的作者,发现是当前界面是不会刷新的,得需要重新进入界面。。。好吧,果断卸载了,这时候突然脑海中闪出一个模糊的印象,好像之前用过一个工具,对UI上的层的显示很清晰直观,可以很方便的用于UI的调试,用来学习UI的使用也是无上利器,这个工具就是Reveal。
这个软件是付费软件,但是有30天的试用,如果大家觉得好用的话,可以再购买。但是刚才在搜Reveal破解的时候,发现已经有人在分享了
一: 安装reveal很简单,只需要把framework导入工程即可。
1,打开Reveal工具,点击左上角工具栏的help选项,然后选择Show Reveal Library in Finder,这样就会看到RevealApp里面的库。
2.打开Xcode,然后将Reveal.framework加入工程,在弹出框中选中Copy items if needed
3.修改工程的「Build Settings」下的「Other Linker Flags」的对应的值为「-ObjC」
4 .Com + R 运行一下,如果报错的话,需要引入「libz.dylib」库,然后重新运行工程,就OK了。
5.运行成功后,打开Reveal,左上角的就会显示你运行的工程
这样就可以调试了,在Reveal里面修改,回车就可以看到效果了,我是在模拟器里面运行的,也可以真机调试,但是真机必须与电脑是在同一个网络里面。
二:还有一种方法是不用将Reveal.framework导入工程内就可以调试的。
1.点击左上工具栏的View -->Navigators --> Show Breakpoint Navigator .
2.点击左下角的加号,选择Add Symbolic Breakpoint
3. 在Symbol输入区内输入UIApplicationMain 点击Add Action按钮, 确认Action被设置为Debugger Command。
4. 将expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)拷贝至action 的输入区
5.选中Automatically continue after evaluating actions选项。效果如下:
6. 右击刚才新创建的断点,选择Move Breakpoint To → User
好了,运行成功后,打开Reveal,左上角的就会显示你运行的工程。效果如上面的GIF一样,是不是很神奇。
最最强悍的是,有人研究出了用Reveal来观看任意app的UI方法,而且也不复杂,这个属于逆向工程的范畴了,在UI的学习上还是不错的