当前位置: 代码迷 >> 综合 >> Reveal 的安装和使用
  详细解决方案

Reveal 的安装和使用

热度:96   发布时间:2023-12-20 23:31:08.0

Reveal 是iOS 下查看页面布局的神器。今天下午我写一个页面的时候加了一个view 到self.view上的时候,死活没见出来,用的iPhone 6的模拟器,用po 命令打印出来的frame 是{0,617,375,50},貌似也没错的啊,改颜色也没效果,后面用Reveal 一看,发现那个页面已经在屏幕以下了。这里写图片描述
红色这个就是我当时想放在绿色的地方,一看就是忘记减去顶部的64个pix了,做了这么久的开发,真是被自己蠢哭了。下面说一下怎么安装和使用这个神器。

1、在官网上下载这个App,有30天得试用期。个人购买的价钱现在是89美元。
2、打开Reveal,选择help 然后选择Show Reveal Library in Finder。
3、对于只是想分析自己的工程的App ,那么就把这个framework 拖入到自己的工程中,并选择copy to group if need 选项。确保有

Reveal.Framework
CFNetwork.framework
QuartzCore.framework
CoreGraphics.framework

这四个框架。保证设备或者模拟器是iOS 8 以上的。
4、对于想分析别人的App 的页面布局要有以下步骤。
(1).一台越狱机器,我的是iOS 版本是8.4的iPhone 4s。将这台机子越狱,我用的是太极越狱,当然你如果是其他版本的,那可以使用盘古团队的越狱。越狱完了以后,在Cydia 上安装OpenSSH 和MobileSubstrate。前者是用来使用终端登陆上去到手机并传输文件的,后者就是用来分析别人的App 框架用的。
(2)将 libReveal.dylib 拷贝到桌面,然后同时创建libReveal.plist,输入想分析的 App 的 BundleId,最好一次输入一个,那怎么得到别人的BundleId呢,如果你用itools 或者ifunbox 可以在越狱手机查得到的话,那就用这个方法,其实还有一个通过程序读取手机上的所有app 的bundle id的,程序如下:

  Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];NSLog(@"apps: %@", [workspace performSelector:@selector(allApplications)]);

得到bundleId 后呢就往新建的libReveal.plist输入得到的你想分析的id,格式如下:

{      Filter = {          Bundles = ("com.apple.AppStore");    }; 
}

(3)、将这个Reveal 的动态库和plist 文件上传到越狱机子上,在mac 终端上使用刚才的openssh命令(确保mac 和iPhone 在同一个wifi 下面):

scp Desktop/libReveal.dylib root@192.168.1.111:/Library/MobileSubstrate/DynamicLibrariesscp Desktop/libReveal.plist root@192.168.1.111:/Library/MobileSubstrate/DynamicLibraries

这个xxx.xxx.xx.xx就是你的手机的ip。要输入密码的话那就是alpine
打开要研究的app,然后打开Reveal,使用右上角的刷新按钮,即可开始分析了。