關 於iOS UI調試工具Reveal的配置,很多初學者朋友可能在網上搜索到一些文章,這些文章大部分都是講述瞭如何通過配置Xcode項目,通過加入一些庫文件, 並且在程式中編寫額外的代碼來調用Reveal服務,從而保證調試程式的時候能夠將項目附加到Reveal中分析。 這種方式,比較繁瑣,並且每寫個 ...
關 於iOS UI調試工具Reveal的配置,很多初學者朋友可能在網上搜索到一些文章,這些文章大部分都是講述瞭如何通過配置Xcode項目,通過加入一些庫文件, 並且在程式中編寫額外的代碼來調用Reveal服務,從而保證調試程式的時候能夠將項目附加到Reveal中分析。
這種方式,比較繁瑣,並且每寫個項目都需要重覆這些繁瑣的步驟,這是讓人難以忍受的。為此,在下通過諸多分析嘗試,終於發現了一種一勞永逸的方法。現在就 將這個方法介紹給大家。這個方法不是我發明的,這是Reveal官方的文檔提供的方法。但是網上鮮少提及,我在這裡把這個方法介紹給大家。這個方法是通過 Xcode斷點命令來調用Reveal服務,然後保證在程式在模擬器運行的時候,Reveal隨時都可以附加上,這樣就可以方便地分析UI的層次結構。這 個方法只需要對Xcode做一次配置,從此以後,任何時候都可以使用Reveal,這是極其方便的,避免了每次繁瑣的項目配置,並且不需要編寫任何代碼。 下麵我就詳細地跟大家介紹一下具體的配置方法。
如果你尚未安裝Reveal,建議從官方下載安裝試用。
本文使用的Reveal版本是1.5.1
下麵是詳細的配置步驟:
1.在Xcode中打開一個iOS項目,選擇菜單項View → Navigators → Show Breakpoint Navigator.步驟如下圖所示:
2.在左側的導航面板下方,點擊“+”並且選擇【Add Symbolic Breakpoint 】菜單項,如下圖所示:
3.在彈出面板的Symbol欄位中填寫“UIApplicationMain”,如下圖:
4.點擊Add Action 按鈕,如下圖:
5.複製如下的命令粘貼到上圖中所示的編輯框:
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)
如下圖所示:
上述命令中,有個路徑字元串
/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib
請確保這個字元串所指的文件在磁碟上存在(正常情況下,如果將Reveal安裝到Application目錄,這裡不會出問題)。
6.勾選Automatically continue after evaluating actions選項。
7.完成上述步驟以後,在新創建的斷點上面點擊右鍵,彈出如下菜單並選擇,如下圖所示:
現在,所有的配置步驟均已完成。以後無論分析任何項目,都可以直接啟動Reveal 並分析。
現在啟動一個項目調試,Xcode控制台會輸出如下log,表明配置正確,Reveal已經可以正常啟動使用,如下圖所示:
接下來啟動Reveal,如下圖操作:
下麵體驗一下Reveal的強悍吧:
在上面這個演示demo中,足以說明Reveal的強大與方便,各種層次結構一目瞭然,特別是針對那些不規則的UI實現,可以進行方便的分析。