Xcode 配件之 InjectionIII

闡述

現有項目體量有點龐大,每次Run都可以邊瀏覽新聞邊享受一杯濃濃的Coffee。

想過分主體開發,但現有的模式改動成本有點大,版本迭代週期短,先尋求額外的插件來稍微彌補一下即可。

在瀏覽戴銘大師的專欄時,看到一個方案,實踐並記錄一下。

 

實驗

1 環境

macOS Mojave 10.14.5 + Xcode 10.2

 

2 移植

2-1 安裝 InjectionIII

App Store 中搜索並安裝(整個過程中最簡單的一步)

 

2-2 項目配置

a.  Workspace配置(項目非集成Pods可以跳過)

將 File -> Workspace Settings... -> Build System,改爲Legacy Build System 模式。

(默認的 New Build System(Default) 模式,是不會編譯 pod 裏面的改動)

 

b.  AppDelegate.swift 注入配置 (applicationDidFinishLaunching函數中)

根據項目開發環境選擇不同的配置代碼: 

( 配置語句來自: https://github.com/johnno1962/InjectionIII )

 

c.  UIViewController 預配

在 UIViewController 加入 InjectionIII 後面刷新要調用的函數。 (父類添加,類拓展都OK)

// Swift:
extension UIViewController {
  @objc func injected() {
    viewDidLoad()
    viewWillAppear(true)
    viewDidAppear(true)
  }
}
// OC:
- (void)injected {
    [self viewDidLoad];
    [self viewWillAppear:YES];
    [self viewWillDisappear:YES];
}

 

d.  先啓動 InjectionIII,然後Run程序

(當出現下方的小針管並帶有 Injection connected 代表鏈接成功)

 

3 遺憾點

a.  .story + .xib 不支持動態修改

b.  不支持在已有類中動態添加函數

c.  不支持真機

d.  不支持移除代碼並對已添加的視圖進行顯示、隱藏屬性、移除等操作

 

資料

1.  https://github.com/johnno1962/InjectionIII#injectioniii---overdue-swift4-rewrite-of-injection

2.  戴銘極客時間專欄

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章