在他人的App中使用Reveal分析(在没有源码的情况下),无论对于开发人员还是UI设计师都无疑是一个很好的学习途径。本文将讲解如何通过Reveal查看任意App的图层结构。网易新闻是我每天都在使用的新闻阅读软件,本文将以查看网易新闻客户端的视图结构为例,详细叙述所需的步骤。(如何分析自己的App不在本文的讨论范围内)

准备工作

一台Mac电脑,电脑需要安装Reveal软件,考虑到版权原因具体怎么找到破解版试用版这里不多说,自己百度搜搜就好,确保应用安装在Mac的应用程序目录下,否则下文的目录需要修改自己的目录。然后需要一台越狱的iOS设备,机型随意。本文使用的是iPod touch。

iOS设备配置

越狱后在iOS设备上会自动安装Cydia商店。如下图所示
这里写图片描述

安装OpenSSH

打开应用商店搜索OpenSSH,然后点击安装就可。

这里写图片描述

安装Cydia Substrate

同理搜索安装Cydia Substrate,点击安装即可。

这里写图片描述

创建plist文件

首先需要获取设备的bundle id。怎么获取呢,这个有很多的办法,第一种是直接在itune里面下载应用然后解压之后,显示包内容然后就可以看到info.plist,进而可以看到bundle id了。
这里写图片描述
然后
这里写图片描述

也可以用iTools这个工具查看手机上安装的所有应用的bundle id。
这里写图片描述

最后还可以使用越狱后的iOS设备自带的软件iFile
这里写图片描述
以上的目的都是为了获取bundle id而已。自己挑一个方便的使用就好。

使用Xcode创建一个名为libReveal的plist文件。plist文件格式如下,然后把需要查看应用的bundle id都写到里面即可。
这里写图片描述

将Reveal库文件拷贝到设备中

连接设备

首先让越狱设备和Mac在同一个wifi内。然后点击所连接的wifi查看iOS设备的IP地址。(一定要确保在同一个wifi下,很多出问题的原因都是这个引起的)
这里写图片描述

拷贝 Reveal.framework

打开终端,输入

1
scp -r /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/Reveal.framework root@192.168.1.xx:/System/Library/Frameworks

192.168.1.xx 是自己手机的iP地址,下同。
输入之后系统会询问你是否连接,输入yes即可,下同。
接着会询问你输入密码,密码是alpine,下同。

拷贝 libReveal.dylib

同理打开终端输入

1
scp -r /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib root@192.168.1.xx:/Library/MobileSubstrate/DynamicLibraries

拷贝 libReveal.plist

同样也是使用终端拷贝libReveal.plist ,文件所在目录需要修改为自己的目录。

1
scp -r /Users/jianquan/Downloads/libReveal.plist root@192.168.1.149:/Library/MobileSubstrate/DynamicLibraries

查看结果

重启应用和Reveal。如果应用已经打开记得杀死应用再启动。切换页面之后,可以使用右上角的刷新按钮进行刷新。
这里写图片描述