Reveal 功能強大,針對UI調試,可免去大量修改在重啟虛擬的步驟。
- 下載Reveal (http://revealapp.com)
- 破解Reveal (Google)
- 項目集成Reveal (官方中文文檔)
- 越獄查看其它APP (使用Reveal查看任意App的技巧)
以下基於Reveal 1.6。
用於快速上手的內置應用
在 Help 菜單項中,點擊 Inspect Sample App ,稍微等一會,Reveal會將Soundstagram應用拷貝到你的iPhone模擬器中,並自動打開應用,自動連上開始Debug。一鍵搞定,你馬上就會看到活的Reveal了。
集成
對於專業的iOS工程師(可是連我們的設計師也毫不留情地采用了這種配置),我個人強烈推薦通過Xcode中加斷點的方式集成Reveal。一次配置,終生受益,無論到哪個項目,簡直太方便了,有木有。(小缺陷,當你禁用斷點時或者不用Xcode而用Appcode開發時,這個方式是不管用的。)
- 打開您的iOS工程,選擇 View → Navigators → Show Breakpoint Navigator。
- 在面板左下角,點擊 + 按鈕並選擇 Add Symbolic Breakpoint... 。
- 在 Symbol 輸入區內輸入
UIApplicationMain
。 - 點擊 Add Action 按鈕, 確認 Action 被設置為 Debugger Command。
- 將以下內容拷貝到 Action 的輸入區內: (注意: 請確認Reveal.app的路徑信息符合您Mac的實際位置。)
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)
- 選中 Automatically continue after evaluating actions 選項。
- 完成上述步驟以后,在新創建的斷點上面點擊右鍵,彈出如下菜單並選擇,如下圖所示:(以后無論分析任何項目,都可以直接啟動Reveal 並分析。)
現在啟動一個項目調試,Xcode控制台會輸出如下log,表明配置正確,Reveal已經可以正常啟動使用,如下圖所示:
接下來啟動Reveal,如下圖操作:
常用的快捷鍵
請到 _Help -> Keyboard Shortcuts 中查看詳細列表。
自動布局的調試
自動布局(Auto Layout)已經越來越普遍的深入千家萬戶了,隨着iOS設備分辨率的多(sui)樣(pian)化,自動布局已慢慢成為了標准配置。
有了Reveal,這就方便多了。Reveal對視圖上的約束條件提供了相當豐富的檢視與實時修改功能,具體看下面這張圖,再自己摸索一下就好了。
a 顯示/隱藏所有約束條件
b 查看關聯到此View的所有約束
c 可以直接在Canvas中選中某一約束
d 查看某一約束的具體信息,可以實時修改constant屬性,立刻檢查效果
e 跳轉到某一約束的詳細屬性頁面
實時修改View屬性
Reveal不僅僅只是查看各種屬性的工具,也支持實時的修改一些屬性。如下圖中的大部份屬性,你都可以實時的在模擬器中看到修改后的效果。這省去了過去總是要修改代碼,重新編譯運行這個漫長的反饋流程。在和設計師一起嘗試各種顯示效果時,這個功能特別高效。
Snapshot
Reveal還具有保存現場的功能(快捷鍵,⌘ s),它將保存應用的截圖,所有View的層級結構和具體屬性信息。換句話說,下次你打開這個Snapshot文件時,不需要啟動iOS應用,也可以看到所有的視圖信息。
一些可能的使用場景:你可以在描述布局問題時,給其他團隊成員分享Snapshot;還可以對不同大小的模擬器分別保存Snapshot,然后再做詳細地比較,找出問題所在。