警告
很遺憾,就在寫完這篇文章沒幾天,iOS開發(fā)者們就陸續(xù)收到蘋果的警告郵件,要求停止使用動態(tài)下發(fā)的熱修復技術(shù)。
最初應該是在JSPatch的gihub上,有人提到蘋果的警告郵件,然后大家紛紛圍觀灌水~
到目前為止,業(yè)界沒有特別好的解決方案或者替代方案,JSPatch平臺也建議開發(fā)者在下一個版本停止使用JSPatch。
相關(guān)的總結(jié)可以看這里。
至于DynamicCocoa會怎么樣,我估計也。。。(╮(╯▽╰)╭)
===================以下是原文======================
前言
Hot-Fix熱修復技術(shù),就是指不需要重新上架ipa包就修復線上bug的相關(guān)機制。
由于App Store的審核機制,以及蘋果不允許App加載動態(tài)庫等原因,iOS的熱修復技術(shù)一直比較欠缺。
但是bug是難以避免的,除了通過嚴格測試來修復上線前的bug,用熱修復技術(shù)來解決線上bug,對于一款App來說,是相當必須的。
當前主流的iOS熱修復技術(shù)
1.JSPatch 已開源,也有成熟的商業(yè)化方案。
2.滴滴打車的動態(tài)化方案DynamicCocoa,據(jù)說今年會開源,十分期待。
JSPatch
JSPatch 的原理簡單的說,就是下發(fā)js 代碼,通過JSPatch的引擎,為iOS程序動態(tài)地添加模塊 或者 替換
![Uploading 1614740780-55e3c766792db_articlex_594374.png . . .]
原生代碼,從而達到不更新版本修復線上bug的目的。
具體的使用方法不展開說了,下邊就自己接入過程中遇到的兩個問題做一下記錄
a. 傳輸安全
這種打補丁的機制幾乎可以控制整個App了,所以必須補丁腳本在傳輸過程中的安全。至少也要防止補丁腳本被篡改。
- 采用HTTPS,這種方法比較通用。今年蘋果又把強制APP使用HTTPS的時間推遲了,我們項目也還沒有完全采用HTTPS。
- 第二種方法是 使用RSA校驗

JSPatch作者有提供打包加密的工具JSPathc Loader
b. 執(zhí)行安全
還需要考慮腳本在執(zhí)行過程中的安全,Patch包的加載在App啟動的初期,如果Ptach包本事含有導致crash的bug,那么會造成App永遠無法正常啟動的嚴重問題。

協(xié)議設(shè)計參考

