Reveal的使用--整理自唐巧的《iOS開發進階》
1.下載一個正版的reveal來安裝。
2.開啟終端,輸入vim ~/.lldbinit建立一個名為.lldbinit的檔案,然後將如下內容輸入檔案中
command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2);
command alias reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);
command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];
該步驟其實是為lldb設定4個別名,這樣方便以後操作,這4個別名的意義如下:
1)reveal_load_sim 模擬器載入reveal除錯用的動態連結庫。
2)reveal_load_dev 真機載入reveal除錯用的動態連結庫。
3)reveal_start 啟動reveal除錯功能。
4)reveal_stop 結束reveal除錯功能。
3.在AppDelegate類的application:(UIApplication *)application didFinishLaunchingWithOptions:方法中接入下面3個操作,如下如:
1) 增加一個斷點,右擊斷點,選擇"Edit BreakPoint".
2) 單擊"Action"右邊的"Add Action",然後輸入"reveal_load_sim".
3) 勾選上"Options"上的“Automatically continue after evaluating actions”選項。
之後執行我們執行模擬器,開啟reveal,就可以在reveal介面左上角看到有模擬器可以選擇除錯,選擇它,則可以在reveal中檢視除錯iOS程式的介面了。
4.用revea連線真機(補充:似乎現在這個方法已經不生效了)
要用reveal連線真機除錯,我們需要先把reveal的動態連結庫上傳到真機上。由於iOS裝置有沙盒存在,所以我們只能將reveal的動態連結庫新增到工程裡。
1)選擇reveal選單欄的"Help"->"Show Reveal library in Finder"選項,可以在Finder中找到Reveal的動態連結庫libReveal.dylib.
2)將該檔案拖到工程裡,Xcode預設將libReveal.dylib設定到"Link Binary With Libraries",我們需要進行調整,將"Link Binary With Libraries"中的libReveal.dylib刪除,再將其新增到"Copy Bundle Resources"下面。
3)之後用Reveal連線真機的方式和連線模擬器的方式類似,我們只需把上面提到的斷點Action的內容從reveal_load_sim改成reveal_load_dev即可。
補充:1.關於正版reveal的使用
reveal時收費的,所以。。。,它有30天的試用期,到30天過期後,到~/Library/Preferences/com.ittybittyapps.Reveal.plist,把這個plist檔案刪除,然後重啟電腦,就可以了。雖然麻煩點兒,將就著使吧。
2.在打包上傳的時候libReveal.dylib是需要刪除的,不然會報錯。