首先先來介紹 Reveal2Loader,它是一款可以在越獄的裝置上讓 Reveal 讀取任何 app 的插件,至於 Reveal 的使用方式就先不在這邊提了。
我們可以透過這個方式來查看別人的 app 是怎麼設計 UI 的,以 Twitter 的 iOS app 為例子
我們可以看到他們所使用的字型、大小、顏色以及元件名稱等,像是這邊就是他們自己定義的 T1StatusAttributedTextView
。
越獄
我是使用 iOS 12.4 的 iPhone 6 搭配 unc0ver 來進行越獄,你可以很輕易地使用手機來開啟這個網頁來進行操作,這步驟沒什麼難度。
安裝 Reveal2Loader
透過 Cydia 來安裝 Reveal2Loader,如果安裝的時候出現了找不到來源的錯誤時,可以重新讀取 Sources 試試看。
安裝 Dropbear
我的 SSH 是使用 Dropbear,你可以透過 http://cydia.ichitaso.com
這個 Source 來安裝。
安裝 usbmuxd
我是使用 USB 的方式來連接手機裝置的,所以先在 macOS 上安裝 usbmuxd
brew install usbmuxd
並且透過指令將特定的 port 來代理原本用來連接 ssh 的 port 22。
iproxy 5678 22
接著我們就可以利用 port 5678
來連上裝置了。
操作流程
安裝完 Reveal2Loader
之後,你會發現在設定
裡頭多了 Reveal
的選項
接著在 Enabled Applications
裡頭打開你要觀看的 USER APPLICATIONS
在還沒有更新 RevealServer 的情況下,打開 Reveal 會跳出 You may need to update the Reveal library in your app 的訊息。
那麼首先就先將 RevealServer 搬運到裝置內
scp -p 5678 /Users/YourUserName/Library/Application\ Support/Reveal/RevealServer/iOS/RevealServer.framework/RevealServer root@127.0.0.1:/Library/MobileSubstrate/DynamicLibraries
以及 RevealServer.framework 複製一份到 frameworks
scp -P 5678 -r /Users/YourUserName/Library/ApplicationSupport/Reveal/RevealServer/iOS/RevealServer.framework root@127.0.0.1:/Library/Frameworks
最後記得補上
killall SpringBoard
來重新啟動 SpringBoard 來加載剛剛加入的 framework,這樣就可以在 Reveal 上看到我們剛剛開啟的 app 了!