不修改Xcode項目載入Reveal,xcode項目reveal

來源:互聯網
上載者:User

不修改Xcode項目載入Reveal,xcode項目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實現,可以進行方便的分析。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.