Reveal是目前我发现最好的iOS View Hierarchy工具。它能够将App界面的视图层次结构实时的展示出来,以便于调试分析。官方文档(http://revealapp.com)只说明了如何在我们的项目中加载Reveal,但如果我们能够在他人的App中使用Reveal分析(在没有源码的情况下),无疑是一个很好的学习途径。
![](https://i-blog.csdnimg.cn/blog_migrate/ffcb419edfe4e56231ff2a7eac8fb88c.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/5cbcd013f5832c0b57704e9b7ec0e300.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/2bbbbd1518606ecd2051cf160f86defd.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/118fc029176655238768611d348f6213.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/c36bd864c56832feb9594f961c9b2f5a.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/0b1f18985a866f3b4da8c64f13636f88.webp?x-image-process=image/format,png)
第五步: connect Reveal
![](https://i-blog.csdnimg.cn/blog_migrate/deb5fbb599b493bc47fddc8e0e44f4d3.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/4805dff0d175e4138d14bda69d4e39d6.webp?x-image-process=image/format,png)
我们需要:
- 越狱设备一台
- 软件Reveal
- 软件iFunbox
第一步:通过Cydia商店搜索并安装OpenSSH,Cydia Substrate(原名MobileSubstrate)
![](https://i-blog.csdnimg.cn/blog_migrate/ffcb419edfe4e56231ff2a7eac8fb88c.webp?x-image-process=image/format,png)
Cydia安装结果
第二步: 获取他人App的BundleID
使用iFunbox打开目标App,在根目录下找到iTunesMetadata.plist,打开iTunesMetadata.plist,将softwareVersionBundleId项中的值记下来
![](https://i-blog.csdnimg.cn/blog_migrate/5cbcd013f5832c0b57704e9b7ec0e300.webp?x-image-process=image/format,png)
iFunBox解开的iPa包
第三步: 创建plist文件
创建文件libReveal.plist,将目标app的BundleId按照格式写好:
![](https://i-blog.csdnimg.cn/blog_migrate/2bbbbd1518606ecd2051cf160f86defd.webp?x-image-process=image/format,png)
plist文件
第五步 命令行操作
此步必须确保手机和电脑在同一个网段上;同时,需要输入密码的全部输入“alipe”;命令中的Ip统一为手机连接的IP。
![](https://i-blog.csdnimg.cn/blog_migrate/118fc029176655238768611d348f6213.webp?x-image-process=image/format,png)
上传Reveal.Framework;询问 yes/no 输入yes;密码输入“alipe”
![](https://i-blog.csdnimg.cn/blog_migrate/c36bd864c56832feb9594f961c9b2f5a.webp?x-image-process=image/format,png)
上传Reveal.dylib连接库; OpenSSH默认链接密码:alpine
![](https://i-blog.csdnimg.cn/blog_migrate/0b1f18985a866f3b4da8c64f13636f88.webp?x-image-process=image/format,png)
上传plist文件
第五步: connect Reveal ![](https://i-blog.csdnimg.cn/blog_migrate/0631a6ef0bc415112b42587c1d3138c7.webp?x-image-process=image/format,png)
点击左上角的No Connection,然后选择“App Name”
![](https://i-blog.csdnimg.cn/blog_migrate/deb5fbb599b493bc47fddc8e0e44f4d3.webp?x-image-process=image/format,png)
当设备上的App页面切换后,需要点击Reveal窗口右上角刷新按钮进行刷新(Commend+R),在局域网内负荷较大时,视图刷新会很慢,可以让设备共享热点给Mac来解决
![](https://i-blog.csdnimg.cn/blog_migrate/4805dff0d175e4138d14bda69d4e39d6.webp?x-image-process=image/format,png)
界面主要部分