最新Reveal安装与使用,可以查看任意AppUI布局。
Posted guanshenbao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最新Reveal安装与使用,可以查看任意AppUI布局。相关的知识,希望对你有一定的参考价值。
最近在看ios逆向的资料,发现了调试UI的工具--Reveal,发现这在实际开发中也是很有用处。当我们需要参照其他App界面布局的时候,使用这个工具可以看他的布局情况。不过这需要手机越狱才行。如果没有越狱的话,只能调试自己的App,有同学会说,如果是自己的App,那我用自带就够了,其实Reveal有个比Xcode自带的更有用的功能。Reveal提供一个可以即时改布局属性的功能,即我不需要修改代码,再重启App来查看。只需要在右边约束直接修改数值,回车一下,就能看到相关的布局了,类似于前端通过浏览器修改界面,个人觉得非常的方便。
安装与使用Reveal的主要步骤:
- 安装Reveal软件。
- 导入RevealServer.framework到项目的根目录。(记得打包前移除,RevealServer.framework在Reveal应用的Help-->Show Reveal Library in Finder-->iOS Library中获取,如果是调试自己的App,到这一步就可以了)。
- 将libReveal.dylib和libReveal.plist移到iOS设备的目录/Library/MobileSubstrate/DynamicLibraries。
1. 安装Reveal软件:
https://blog.csdn.net/Crazy_SunShine/article/details/78843023 这位博主大大提供了破解版。里边也有其他几种方式使用Reveal,这里就记录使用过的最简单的方式。
2. 导入RevealServer.framework到项目的根目录:
RevealServer.framework在Reveal应用的Help-->Show Reveal Library in Finder-->iOS Library中获取。取到后,拖进项目的根目录。然后在TARGETS中添加RevealServer.framework。
到这一步后,运行项目,打开Reveal,即可看到对应的项目。
随便选择一个即可看到对应的层级结构。到这一步就能调试自己的App了。
3. 查看其它任意App的布局:
这一步需要越狱的手机,越狱的方法很多,PP助手、爱思助手都可以。越狱后在Cydia中安装三个重要的插件:Cydia Substrate、OpenSSH、Reveal Loader。
安装好对应的插件后,开始准备工作:
- 将libReveal.dylib和libReveal.plist移到iOS设备的目录/Library/MobileSubstrate/DynamicLibraries。新版的Reveal没有libReveal.dylib。需要将RevealServer.framework中的RevealServer文件移入时重命名成libReveal.dylib,使用的命令是(将IP地址换成iOS设备的IP地址,主要要保持在一个局域网内):
scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer [email protected]192.168.2.6:/Library/MobileSubstrate/DynamicLibraries/libReveal.dylib
需要输入的默认密码是:apline
这里我因为试了一下 OpenSSH 能不能成功连上手机。使用了。"ssh [email protected]"。输入密码apline后,成功连接了iPhone的机子,再使用上面命令一直说找不到文件目录,是因为当前设备主体不对。小小注意一下。另外类似的代码将libReveal.plist也移入到设备中:
scp xxx/libReveal.plist [email protected]192.168.2.6:/Library/MobileSubstrate/DynamicLibraries/libReveal.plist
plist的内容是你要调试的App的bundle id。如下图:
这里再贴上一份。获取手机所有应用的bundle id的代码。
NSMutableArray *allID = [[NSMutableArray alloc] init]; Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace"); NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)]; NSArray *appArray = [workspace performSelector:@selector(allApplications)]; NSString *model = [UIDevice currentDevice].model; for (NSString *str in appArray) { //转换成字符串类型 NSString *string = [str description]; NSRange rg1 = [string rangeOfString:@">"]; string = [string substringFromIndex:rg1.location + 2]; if ([model isEqualToString:@"iPad"]) { NSRange rg2 = [string rangeOfString:@"<"]; string = [string substringToIndex:rg2.location - 1]; } NSDictionary *dic = @{@"bundleID":string}; [allID addObject:dic]; } NSLog(@"allID-----%@",allID);
2. 在iOS设备上设置中 Reveal 的Enabled Applications指定要查看的App。
到这里就完成了。
接下来打开你要查看的App,再打开Reveal。即可看到对应界面。
以上是关于最新Reveal安装与使用,可以查看任意AppUI布局。的主要内容,如果未能解决你的问题,请参考以下文章