Reveal是壹個程序界面調試工具,可以調試iOS apps和tvOS apps。使用Reveal,我們可以在開發時動態地查看和修改應用程序的界面。避免每次修改UI的時候都要重新運行程序。接下來按照規矩,如下圖,能用圖說明清楚的就不用文字來表達了,文字的表現力不夠直觀。
1、如“Reveal程序運行截圖”所示,我使用的 Reveal官方提供的項目 來作為調試Demo,最左邊的是Demo的在模擬器的運行效果,右邊的App就是Reveal,我第壹眼看到這個Reveal有種驚艷的感覺。App的左上方是我此刻調試的模擬器,左下方是我此刻查看UI細節信息的UIView,App的中間部分就是此刻正在分析的設備界面,App的最右邊是不是看著和Xcode的Xib編輯器有點類似,沒錯這個就是可以動態查看和修改UI的地方。這個修改的方式和Xcode的Xib修改Ui細節類似,相信妳對這個已經很有感覺了,只要稍加查看就可以上手的。
2、如“ Reveal 查看UI圖”所示,Reveal查看UI的維度也是可以選擇的,可以有二維視角,也可以有三維視角。我選擇了壹個三維視角,如上圖所示左邊點擊展開UIView的層級,點擊對應的View查看這個View的對應約束,用這樣的方式來查看UI的約束是不是太直觀了。
說了這麽多,最重要的還沒有說出來呢,那就是這個Reveal這麽叼,那我要怎麽使用它來調試我自己的App界面,或者查看其他知名App的UI布局實現信息。接下來還是先說說怎麽用它來調試我們自己的App界面。
1、在Xcode項目中,選擇“ View → Navigators → Show Breakpoint Navigator”。
2、在左邊底部面板,點擊" + "號按鈕,然後選擇“ Add Symbolic Breakpoint ”。
3、在 Symbol 字段裏面填入“ UIApplicationMain ”。
4、點擊“ Add Action ”按鈕,並確認壹下“Action”是設置到“ Debugger Command ”。
5、在 Action 下的文本框中貼入如下表達式
6、檢查選項“ Automatically continue after evaluating actions ”是否勾選了。
7、右鍵點擊新建的斷點,然後選擇“
Move Breakpoint To → User
”保存給所有的項目使用。
8、編譯,在模擬器上運行妳的程序,然後打開Reveal,查看妳的布局。
1、如“ 拖庫進項目”圖所示, 把Reveal的庫拖到我們項目中來。
2、如“ 選擇添加的方法” 所示,不要把庫加到我們App的target裏面。
3、如“ 添加到Bundle Resource ”圖所示,將Reveal的庫添加到 Bundle Resource。
4、如“ 選擇 添加到Bundle Resource”所示,選擇對應的Reveal的庫到 Bundle Resource。
5、如“ 添加Reveal庫成功 ”圖所示,當Bundle Resources出現了 Reveal庫的時候就添加成功了。
6、如“ 添加對應的系統庫 ”所示,添加Reveal運行時所需要的系統庫。
7、如“ 添加Reveal運行腳本 ”所示,接下來是添加Reveal的運行腳本,是不是感覺到麻煩了,如果妳有更好調試非越獄真機的方法歡迎告知我,謝謝!
8、如“ 寫入Reveal對應的腳本 ”所示,寫入Reveal運行時候需要的腳本,腳本內容如下:
9、如“ 加載方法 ”圖所示,需要在AppDelegate裏面寫對應的Reveal加載方法,我使用的是Swift版本的,當然也有OC版本的。然後如“ 在生命周期方法裏面調用加載方法 ”圖所示,需要在生命周期方法裏面調用Reveal的加載方法。各個版本加載方法現提供如下(需要註意的是不要在發布版本去加載Reveal,因為它僅適合調試):Swift:
Objective-C:
10、保證妳的電腦和妳的真機在同壹個網段內,然後運行妳的App,在Reveal中選擇妳的設備,稍等片刻,妳的Reveal就會出現對應的UI界面了,如“ 成功運行結果 ”界面所示(我的運行設備是iPad)。使用Cmd+R快捷鍵可以刷新妳的Reveal界面。
非越獄真機調試是最麻煩的,以前真機還可以使用斷點來調試的,現在都不能用了。不再糾結這個了,如果妳的設備是越獄設備,那麽恭喜妳,妳要使用Reveal簡直是輕松加esay。點開鏈接 壹鍵配置,用Reveal Loader配合Reveal調試App 會有驚喜。這個是Richard Heard這位開發者開發的壹個Reveal插件,妳只需要安裝這個插件,保證妳的電腦和妳的真機在同壹個網段內,然後選擇妳想要調試的任何App(對,沒錯,不是妳自己家的App也可以搞,只有妳想不到,沒有妳看不到的,哈哈哈,巨大福利)。
感謝妳看完了本文,因為我感覺自己寫的文字加上圖片內容很多了,哈哈!這篇文章是來源於我自己的工作實踐經驗,在接觸和使用使用Reveal之前,我壹直都是使用打印View結構的方式來調試UI,但是這個方法的輸出很不友好,因為沒有沒有接觸到特別好用的工具,所以也不覺得這個打印的方法有多耗費時間。但是現在我不這麽想了,根據我的經驗判斷,但凡不能馬上看出問題的UI布局,我都會馬上使用Reveal,因為省時省力,而且它也挺有意思的。
看完我的博客,如果妳覺得我寫的文章對妳有壹丁點兒幫助的話,那麽請妳在下面點個贊,讓我知道這文章有起了它應該起的作用,謝謝!!!