前言
Reveal(http://revealapp.com)是一款十分优秀的iOS View Hierarchy工具(收费,试用30天),功能跟Xcode自带的类似,可用于查看相关界面的布局,支持2D、3D视图切换效果,但是比起Xcode自带的功能要强大许多,使用的时候可以方便地调试和进行应用界面修改,不用每次修改代码再重新启动,并且能够看到每个UI控件的约束条件,界面的大小等等,对于开发者应用界面调试以及学习优秀应用界面布局都是一大利器。
准备
一部越狱手机,Reveal软件
Reveal功能模块简述
更多的使用技巧可自行搜索或探索,这里不做赘述
使用场合
第一种使用场合,应用于已有源码项目
①执行以下步骤找到Reveal.framework的位置
②将Reveal.framework拖至项目中,接下来添加引用库libz
③再在Build Settings中的Other Link flags添加-ObjC(注意大小写)就可以了,图示如下:
④添加测试代码
⑤Xcode运行程序(如果是真机的话,需确保电脑跟手机的ip地址处于同一个网段,简而言之,连同一个wifi就可以了),切换到Reveal程序,此时会发现Reveal内没有任何反应,需再执行以下操作
第二种使用场合,应用于应用商店下载的项目
①同第一种使用方法一样,找到Reveal.framework的位置
②首先在越狱设备上安装应用(以我安装的应用为例子),分别将Reveal.framework复制到越狱机的:/System/Library/Frameworks目录下,将libReveal.dylib复制到越狱机的:/Library/MobileSubstrate/DynamicLibraries下,打开终端,直接上代码:
接着写一份plist文件命名为libReveal.plist,同样将该文件复制到越狱机:/Library/MobileSubstrate/DynamicLibraries文件夹下(指令同上),也可以直接从我的github下载https://github.com/zhaozhenbo/libReveal,在Bundles下新增一行(关于如何获取上架应用bundle ID的部分,请拉到文末,查看“拓展”),把你想看的应用bundle id 填上即可,文件样式如下:
③重启设备,打开plist文件内bundle ID对应的应用。就可以看到你想查看的应用布局了。
拓展
查看第三方应用bundle ID
之前在本人的上一篇文章“iOS逆向工程的探索与学习”,有提及由于iOS8.3系统之后(包括iOS8.3)苹果公司对应用文件共享进行了限制,过诸如iTools,PP助手等应用没法将越狱手机上的应用备份至电脑上,所以如果你的越狱手机系统>=iOS8.3,那么通过备份应用至电脑通过ipa名字得知应用bundle ID的做法显然不可取。下面介绍一种与之类似的简单方法:
①打开iTunes,搜索你要查看布局的app,下载
②show in Finder
③将应用的后缀名“.ipa”修改为“.zip”->保存->解压zip压缩包
④打开解压后的文件夹->打开“.plist”文件->搜索bundle,之后所见即所得
非完整破解Reveal
以下方法并非一次破解终身无忧的破解方式,这种方法只是类似于30天到期了重新安装应用而已,不过,直接把数据文件干掉重新生成,可免去你安装应用的时间,前往路径,~/Library/Preferences/com.ittybittyapps.Reveal.plist,把这个plist文件干掉,然后再重启一下电脑即可,完整破解版请自行搜罗,我个人并不提倡一劳永逸的做法,如果你能通过自我学习之后破解相关软件,无论是对自己知识面的拓展还是技术的提升,都有极大好处,目前我也在积极学习相关技能,stay foolish,stay hungry~
验证砸壳后的应用能不能使用Reveal查看布局
使用Reveal查看砸壳应用效果图
使用Reveal查看未砸壳应用效果图
经过多次对比得知,砸壳后的应用貌似在使用Reveal查看布局界面时会经常无法显示。(这个论证只是通过一个应用砸壳与非砸壳对比下得出的,有不严谨的地方,大伙可自行尝试,进一步验证该结论的正确性)