天天看點

使用jspatch進行熱修複的實戰總結

最近正式線上上項目中內建了jspatch進行熱修複,這裡做一個簡單的總結。

工具篇:

首先,用xcode來編輯js非常困難,基本上沒有縮進,完全需要手寫;經過研究發現使用 Sublime text3 結合 jsformat 插件,可以很好的編輯js腳本。

一般來說,我們可以使用JSConvertor對js進行轉換,然後在sublime text中進行編輯和格式化,通過xcode run代碼來檢視效果。

ps: jsformat 快捷鍵: The default key binding is "ctrl+alt+f"

一次熱修複實踐中遇到的轉換問題:

1. js是動态類型的語言,是以所有的類型轉換代碼全部需要删除掉。

2. 注意不要遺漏defineClass。

3. 所有的枚舉或是宏需要用值來替換。

4. 判空不要和null比較,而是直接用(xxx)和(!xxx)。

5. selector直接替換成字元串即可。

6. console.log("testing3");

這樣的格式用來列印debug日志;建議在代碼的分段都列印一些日志,可以用來判斷是什麼環節的問題。

7. 工具自動轉換會自動去掉一個原來的@符号(在字元串拼接等情況下要注意),這個時候需要手動加回去。

8. stringwithformat隻支援%@。

9. nsstring、array、dic等注意類型,js和oc類型不同,必要時使用.toJS()來轉換到js.

10. block 作為參數傳遞的時候需要手動轉換其類型,具體參考jspatch的文檔。

上面說的其實也都是一些基本的東西,大家遇到問題去查找官方文檔對應的wiki,耐心一點就可以。

https://github.com/bang590/JSPatch/wiki/JSPatch-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95#%E8%A6%86%E7%9B%96%E6%96%B9%E6%B3%95

繼續閱讀