您的位置:首页 > 移动开发

如何查看手机上安装的任意app的视图层次?

2015-09-06 18:02 597 查看
疑问,这个app怎么布局的?不是自家的app,没有源代码怎么看布局?

微信“朋友圈”怎么实现的,新浪微博的评论列表怎么搞的?

有个工具可以查看view的层次结构就好了。答案是可以的。

如下:



右侧是微信的朋友圈,左侧reveal分析出来的UI层级关系。

准备工作:

1. 一台破解版的iOS 设备,本文测试机iOS 8.3.0

2. Reveal软件

3. 手机和电脑处于一个网段

开始

- 获取微信的bundle id

适用itools,找到微信app, 右键点击归档,下载ipa包。

ipa包重命名为zip包,然后解压缩。入下图所示,查看包内容



找到plist文件,可能会有好几个plist文件。



带有WKCompanionAppBundleIdentifier的就是了,微信的bundle id 是com.tencent.xin

越狱手机设置

找到越狱机器上的Cydia
搜索openSSH
安装openSSH


确保Mac和手机在一个网段下

这一步的目的主要是方便用Mac管理手机上的文件。
ssh到手机:
在Mac上运行命令:ssh root@10.72.158.59
其中10.72.158.59表示你的手机的ip地址,注:每次手机重启之后可能变动。
输入密码:alpine
这个是远程root的通用密码,如果用户没有修改过的话就是这个了。(吐槽:越狱手机太不安全了,在一个局域网里面如果用户开通了openssh,那么可以随意访问用户的手机内容了)


准备上传到手机的文件

libReveal.dylib文件
在Reveal的菜单栏中选择help 如下图:
![这里写图片描述](http://img.blog.csdn.net/20150906174327744)
另存为桌面
在Mac命令行中 运行命令:
scp Desktop/libReveal.dylib root@10.72.158.59:/Library/MobileSubstrate/DynamicLibraries
plist文件上传
这个plist是告诉reveal哪个app需要我负责查看,如果不写的话,默认是全部的app,这样会导致运行很卡,很可能白苹果,所以建议上传plist文件,文件内容如下:


{
Filter = {
Bundles = (
"com.tencent.xin"
);
};
}


同样运行命令:
scp      Desktop/libReveal.plist root@10.72.158.59:/Library/MobileSubstrate/DynamicLibraries


重启iPhone

打开Reveal,左上角选择查看微信,等刷新完毕,就可以了。


完。

参考文章:http://www.wugaojun.com/blog/2015/05/20/shi-yong-revealfen-xi-ren-yi-app/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: