Xcode UI界面調(diào)試神器

更新:最近發(fā)現(xiàn)了 騰訊 QMUI 團隊開源 iOS UI 調(diào)試軟件-Lookin;良心之作,真的好用且完全免費。Xcode調(diào)試,剛剛滴?。?!
官網(wǎng)介紹地址

2018.11.8最新更新:injectionIII使用,Xcode10使用無效,搜了GitHub:
InjectionIII的GitHub,給出了解決辦法: 下載InjectionX鏈接

 for Xcode 10:
//Swift:
#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection10.bundle")?.load()
//for tvOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection10.bundle")?.load()
//Or for macOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection10.bundle")?.load()
//OC :
// for iOS
[[NSBundle bundleWithPath:@"/Applications/InjectionX.app/Contents/Resources/iOSInjection.bundle"] load];
// for tvOS
[[NSBundle bundleWithPath:@"/Applications/InjectionX.app/Contents/Resources/tvOSInjection.bundle"] load];
// for masOS
[[NSBundle bundleWithPath:@"/Applications/InjectionX.app/Contents/Resources/macOSInjection.bundle"] load];
 #endif

#前言:一直羨慕安卓開發(fā):這邊改代碼,那邊瞬間見效果;Xcode還需要編譯、項目跑起來,模擬器才能看到效果。有時候XCode編譯超慢,一等就是幾分鐘,實在急死人了。Xcode8以前可以安裝插件Injection for Xcode 實現(xiàn),但是Xcode8以后不能隨心所欲的裝插件了?,F(xiàn)在好啦,不使用插件也可以實現(xiàn)UI即時調(diào)試了。

[injection鏈接](http://johnholdsworth.com/injection.html)

[Mac App Store](https://itunes.apple.com/us/app/injectioniii/id1380446739?ls=1&mt=12)
同時獻(xiàn)上網(wǎng)上大牛對這個開發(fā)工具的實現(xiàn)原理的分析:《Injection:iOS熱重載背后的黑魔法》
[鏈接地址](https://mp.weixin.qq.com/s/hFnHdOP6pmIwzZck-zXE8g)

使用:
#一、OC:
##1.在我們的項目中- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法加入如下代碼:
>if DEBUG
// for iOS
 [[NSBundle  bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
// for tvOS
[[NSBundle  bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle"] load];
// for masOS
[[NSBundle  bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle"] load];
>endif

注意:if DEBUG 和endif前面少個#(因為加上#就變成黑字體了,也不顯示#)
#2.打開Mac APP injectionIII,  點擊Mac 桌面的injectionIII 圖標(biāo)-> Open Recent -> 選擇你的項目 ,最后再選擇FileWatcher(有對號即可);
##3.在任意繼承自O(shè)C的類中加入如下需要跟新的UI代碼,在我們修改了對應(yīng)文件按下COMMAND + S即可看到UI reload了;

>-(void)injected{
 NSLog(@"I've been injected: %@", self);
  self.view.backgroundColor = [UIColor  goldColor];
}

#二:Swift:

>if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()
*//for tvOS:*
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle")?.load()
*//Or for macOS:*
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle")?.load()
endif

執(zhí)行快捷鍵: COMMAND + S

@objc func injected(){

 print("I've been injected: \(self)")

}

不過這只是不run XCode情況下,預(yù)覽UI界面效果,最后要想項目重運行達(dá)到效果,還需要把注入的代碼寫粘貼復(fù)制在真實需要改變的地方。
[injectionIIIDemo地址](https://github.com/Dxc123/injectionIIIDemo.git)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,204評論 3 119
  • 每個人都有自己的想法和意見,你一言我一語會有不同結(jié)果,統(tǒng)一目的,才能達(dá)成結(jié)果。
    孫倩倩Rela閱讀 208評論 0 0
  • 尊敬的陳董: 您好!我是籌辦新品發(fā)布會的xxx。 如您所知,公司的新品媒體發(fā)布會計劃于11月7日舉行,但蘋果公司宣...
    曉蕊閱讀 224評論 0 0
  • 很久之前想到過死亡這個字眼,不知什么時候突然地害怕。因為不知道死后這個世界會變成什么樣子,尤其是沒有自己的世界。有...
    南宮柳閱讀 534評論 2 1
  • 一、定了很多專欄怎么舍取 T型組合>精專練習(xí)一門>看精選信息>看書>看朋友圈 給自己看的知識分類: 1.提高人生眼...
    唐花花閱讀 142評論 0 0

友情鏈接更多精彩內(nèi)容