Reveal 升级之后不能在手机上查看 App 的解决办法

0x00 前言

最近因为 Mac OS X El Capitan 的发布,Reveal 也升级到了 1.6.x,然而之前的 1.5.x,在越狱的 iPhone 上,从 Cydia 中安装了 RHRevealLoader,就能够查看手机上的第三方 App,但是 1.6.x 就不行了,会提示:The operation couldn't be completed. The iOS app is linked against a older version of the Reveal library. You may need to update the Reveal library i your iOS app.

然后我打开 Cydia 去查看插件是否有更新,可惜没有,所以我就自己找解决办法,最后我找到了这个插件的 GitHub 地址,看了一下 issues,然后就找到了 issue #5,看到了解决办法:replace at /Library/RHRevealLoader/libReveal.dylib,亲测可行!

0x01 替换

看了报错信息,就可以知道,Reveal library 的版本太老了。然后我们就要将新的 library 替换手机里旧的 library,新的 library 在:/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/ 下,名字叫:libReveal.dylib

替换很简单,我们可以通过 scp 命令来实现,命令如下:

1
scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib root@your-iPhone's-IP-address:/Library/RHRevealLoader/libReveal.dylib

需要输入一下 root 的密码,这样就 OK 啦。

0x02 第二版更新 (v2)

前一段时间,Reveal 发布了第二版,不再是 libReveal.dylib,而是 RevealServer.framework,所以真机连接再一次失效,不过按照老办法,试了一下,然而并没有效果,又试了一下将 RevealServer.framework 中的 RevealServer 单独拷贝到手机,还是没有用,结果无奈去官网寻找解决办法,结果当然是找到了!办法就是把 RevealServer 拷贝到手机的时候,将文件名改成 libReveal.dylib 就行了。命令如下:

1
scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer root@your-iPhone's-IP-address:/Library/RHRevealLoader/libReveal.dylib

大功告成:

USB 连接查看也可以了,原本的局域网 WiFi 查看还在。

查看第三方 App 也还是可以的:

参考链接:
Reveal Integration Guide
Where is libReveal.dylib in 2.0 version
How to Inspect the View Hierarchy of Third-Party Apps