手把手教你使用reveal(顺便学习别人应用结构)
我目前的使用方式是:
调试自己的项目
-
先添加个symbolic断点
image.png
-
编辑断点,编辑成下面这样
image.png
UIApplicationMain
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal1.6.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)
-
/Applications/Reveal1.6.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib
这个路径是自己的reveal的libReveal.dylib的路径,根据自己的情况来定
-
-
找到自己的libReveal.dylib路径:
image.png
-
然后把断点移动到user,这样以后新建或者打开其他工程都会有这个断点了,不需要每次都创建断点
image.png
- 配着这些东西就已经能够查看和调试自己xcode跑起来的工程了.
调试别人的app
就需要去cydia里去下载一个reveal loader

下载完成以后在设置就会有一个Reveal

点击去以后就可以看到你手机上安装的所有app,把你想调试的app开关打开就可以了.
打开开关以后重新启动你想要调试app,然后在mac的reveal中就可以调试了.reveal4以前的版本都可以都只能是wifi调试,必须mac和手机连接的是同一个wifi才行.
注意:
必须将reveal的动态库放到手机的Library/RHRevealLoader目录里.
reveal的动态库位置:
reveal 2以下
Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib
reveal 2以上
Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer
**** 以下内容是一年前学习reveal时用的方法了,目前可不可行,也不太清楚,由于自己的手机越狱而且装了revelloader,自己也没在使用下面的方法.****
1.先来看看用reveal怎么看自己项目
- 先配置一下
- -ObjC -lz -framework Revea

双击会弹出这么一个窗口,点击加号 ,把-ObjC -lz -framework Revea复制进去,保存
- 在然后,需要导入一个库

库的位置在,打开reveal,看电脑状态栏,打开Help,打开finder


添加进去就行,然后运行程序,成功的话就会提示,

- 在reveal点击这里就可以看见自己的项目了

2:学习别人的结构,真的只是学习别人结构而已 - -
OK,废话不多说,准备工具:
-
: reveal (不差刀就买正版,破解教程满大街都是,网上一搜就全出来了)
-
:越狱的ios操作系统设备(PP越狱助手)
- 到PP官网下载当IOS版本的越狱工具,傻瓜式的,一键越狱,超简单
- 建议先备份手机资料,以免越狱出问题或是下面的教程步骤出问题,导致手机白苹果.到时候起码资料不会丢失.
-
:OS操作系统电脑
都有了?那继续往下看
手机越狱完了,会有一个这么一个应用

打开它,第一次打开会要一点时间去加载数据,然后会提示你有一些必要的东西需要安装,跟着走就可以了。
-
然后点击软件源:

-
进入然间软件源
- 点击编辑,添加,输入这个地址,然后添加源

- 就会出现这个东西 “威锋源”

- 点进去,如果有很多东西(如下图),就证明安装成功了

- 点击右下角的搜索,搜索“apple file conduit "2"”

点进去安装完就OK。
- 然后还需要安装一个东西,搜索“openssh”,然后安装

越狱部分搞定了,那么就开始正戏了
打开reveal,看电脑状态栏,打开Help,打开finder

看看是不是有这两个文件,有就OK

打开终端
先查看一下自己手机的ip

在终端输入这个命令,把我命令里面的ip地址改成你的就行,其他不变(reveal里那两个文件不要动,这个命令会默认从那个文件夹提取文件,动了会找不到)
scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib root@192.168.0.X:/Library/MobileSubstrate/DynamicLibraries
没有问题的话会提示输入yes/no,这里输入yes
然后让你输入密码.
(进入越狱后安装的那个cydia应用,下面有个已安装选项,点进去,找到openssh,打开)
点击这里:

在终端提示输入密码这里输入这个(英文好的朋友可以直接看这个页面,就是教你用这个ssh的)

没问题的话终端会有一个上传进度的画面,上传很快一两秒就OK了。
然后上传libReveal.plist文件(网上很多说libReveal.plist文件可以不传,但是我试了几次,不传肯定白苹果,建议上传)
plist文件结构是这样(但是一定要是json,如果是xml,会识别不了!):

不懂json和xml??没关系,新建一个libReveal.plist文件,然后用文本编辑打开,把下面这个代码复制,保存
{
Filter = {
Bundles = (
"net.qihoo.freewifi",
"com.tencent.QQMusic",
"cn.zaker.iphone",
"com.fenbi.ape.gz",
secoo,
"com.apple.Numbers",
"com.tencent.mqq",
"com.taobao.kbmeishi",
"com.apple.AppStore",
);
};
}
这里Bundles数组里保存的都是手机里app的BundleID。
查看应用的BundleID,可以用itools软件,连接上手机,点击应用,点击文件夹图标

会自动跳到一个文件夹里,找到这个文件(是个隐藏文件,需要让电脑显示隐藏文件才行)

然后导出就行了

找到导出的文件,打开,这个就是

写到自己的plist文件就可以了(。。你要是plist文件都不会弄,就暂时先不要学这个了)
okok,plist文件搞定后,我是先把plist文件还是放到刚才reveal的那两个文件目录下的,这样你就可以直接通过我这个命令直接上传到手机里,方法跟之前那个一样。
警告:刚才放到reveal里面的plist文件,要删除,要不然reveal会打不开!!如果往plist里添加了新的BundleID需要重启手机才行
scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.plist root@192.168.0.X:/Library/MobileSubstrate/DynamicLibraries
重启手机,万事OK。
如有说错的地方,还请指正