最近翻閱簡書漓糙,看到之前有人介紹Injection Plugin for Xcode插件卿闹,直接修改某一行代碼捺宗,F(xiàn)5一下就可以刷新对蒲,不用Com+R運行看效果了钩蚊,節(jié)省了大量時間有木有啊贡翘,但是夢想是美好的,現(xiàn)實是殘酷的砰逻,我安裝了插件之后鸣驱,修改了界面上的Label的顯示內(nèi)容,執(zhí)行control+=,進(jìn)度條閃過蝠咆,但是界面沒有改丐巫,這是什么鬼?難道是Xcode 7.3不支持勺美,后來問了簡書這篇文章的作者,發(fā)現(xiàn)是當(dāng)前界面是不會刷新的碑韵,得需要重新進(jìn)入界面赡茸。。祝闻。好吧占卧,果斷卸載了,這時候突然腦海中閃出一個模糊的印象联喘,好像之前用過一個工具华蜒,對UI上的層的顯示很清晰直觀,可以很方便的用于UI的調(diào)試豁遭,用來學(xué)習(xí)UI的使用也是無上利器叭喜,這個工具就是Reveal。
這個軟件是付費軟件蓖谢,但是有30天的試用捂蕴,如果大家覺得好用的話,可以再購買闪幽。但是剛才在搜Reveal破解的時候啥辨,發(fā)現(xiàn)已經(jīng)有人在分享了
一: 安裝reveal很簡單,只需要把framework導(dǎo)入工程即可盯腌。
1溉知,打開Reveal工具,點擊左上角工具欄的help選項腕够,然后選擇Show Reveal Library in Finder级乍,這樣就會看到RevealApp里面的庫。
2.打開Xcode燕少,然后將Reveal.framework加入工程卡者,在彈出框中選中Copy items if needed
3.修改工程的「Build Settings」下的「Other Linker Flags」的對應(yīng)的值為「-ObjC」
4 .Com + R 運行一下,如果報錯的話客们,需要引入「libz.dylib」庫崇决,然后重新運行工程材诽,就OK了。
5.運行成功后脸侥,打開Reveal,左上角的就會顯示你運行的工程
這樣就可以調(diào)試了盈厘,在Reveal里面修改睁枕,回車就可以看到效果了,我是在模擬器里面運行的沸手,也可以真機(jī)調(diào)試外遇,但是真機(jī)必須與電腦是在同一個網(wǎng)絡(luò)里面。
二:還有一種方法是不用將Reveal.framework導(dǎo)入工程內(nèi)就可以調(diào)試的契吉。
1.點擊左上工具欄的View -->Navigators --> Show Breakpoint Navigator .
2.點擊左下角的加號跳仿,選擇Add Symbolic Breakpoint
3. 在Symbol輸入?yún)^(qū)內(nèi)輸入UIApplicationMain 點擊Add Action按鈕, 確認(rèn)Action被設(shè)置為Debugger Command。
4. 將expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)拷貝至action 的輸入?yún)^(qū)
5.選中Automatically continue after evaluating actions選項捐晶。效果如下:
6. 右擊剛才新創(chuàng)建的斷點菲语,選擇Move Breakpoint To → User
好了,運行成功后惑灵,打開Reveal山上,左上角的就會顯示你運行的工程。效果如上面的GIF一樣英支,是不是很神奇佩憾。
最最強(qiáng)悍的是,有人研究出了用Reveal來觀看任意app的UI方法干花,而且也不復(fù)雜鸯屿,這個屬于逆向工程的范疇了,在UI的學(xué)習(xí)上還是不錯的