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