警告
很遺憾荔烧,就在寫完這篇文章沒幾天,iOS開發(fā)者們就陸續(xù)收到蘋果的警告郵件垃杖,要求停止使用動(dòng)態(tài)下發(fā)的熱修復(fù)技術(shù)符衔。
最初應(yīng)該是在JSPatch的gihub上找前,有人提到蘋果的警告郵件,然后大家紛紛圍觀灌水~
到目前為止判族,業(yè)界沒有特別好的解決方案或者替代方案躺盛,JSPatch平臺(tái)也建議開發(fā)者在下一個(gè)版本停止使用JSPatch。
相關(guān)的總結(jié)可以看這里形帮。
至于DynamicCocoa會(huì)怎么樣槽惫,我估計(jì)也。辩撑。界斜。(╮(╯▽╰)╭)
===================以下是原文======================
前言
Hot-Fix熱修復(fù)技術(shù),就是指不需要重新上架ipa包就修復(fù)線上bug的相關(guān)機(jī)制合冀。
由于App Store的審核機(jī)制各薇,以及蘋果不允許App加載動(dòng)態(tài)庫等原因,iOS的熱修復(fù)技術(shù)一直比較欠缺君躺。
但是bug是難以避免的峭判,除了通過嚴(yán)格測試來修復(fù)上線前的bug,用熱修復(fù)技術(shù)來解決線上bug棕叫,對(duì)于一款A(yù)pp來說林螃,是相當(dāng)必須的。
當(dāng)前主流的iOS熱修復(fù)技術(shù)
1.JSPatch 已開源谍珊,也有成熟的商業(yè)化方案治宣。
2.滴滴打車的動(dòng)態(tài)化方案DynamicCocoa,據(jù)說今年會(huì)開源砌滞,十分期待侮邀。
JSPatch
JSPatch 的原理簡單的說,就是下發(fā)js 代碼贝润,通過JSPatch的引擎绊茧,為iOS程序動(dòng)態(tài)地添加模塊 或者 替換
![Uploading 1614740780-55e3c766792db_articlex_594374.png . . .]
原生代碼控妻,從而達(dá)到不更新版本修復(fù)線上bug的目的装获。
具體的使用方法不展開說了盯蝴,下邊就自己接入過程中遇到的兩個(gè)問題做一下記錄
a. 傳輸安全
這種打補(bǔ)丁的機(jī)制幾乎可以控制整個(gè)App了氢伟,所以必須補(bǔ)丁腳本在傳輸過程中的安全。至少也要防止補(bǔ)丁腳本被篡改宜猜。
- 采用HTTPS脸狸,這種方法比較通用祠乃。今年蘋果又把強(qiáng)制APP使用HTTPS的時(shí)間推遲了横朋,我們項(xiàng)目也還沒有完全采用HTTPS仑乌。
- 第二種方法是 使用RSA校驗(yàn)
JSPatch作者有提供打包加密的工具JSPathc Loader
b. 執(zhí)行安全
還需要考慮腳本在執(zhí)行過程中的安全,Patch包的加載在App啟動(dòng)的初期,如果Ptach包本事含有導(dǎo)致crash的bug晰甚,那么會(huì)造成App永遠(yuǎn)無法正常啟動(dòng)的嚴(yán)重問題衙传。
協(xié)議設(shè)計(jì)參考