iOS 熱修復技術(shù)

警告

很遺憾,就在寫完這篇文章沒幾天,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了,所以必須補丁腳本在傳輸過程中的安全。至少也要防止補丁腳本被篡改。

  1. 采用HTTPS,這種方法比較通用。今年蘋果又把強制APP使用HTTPS的時間推遲了,我們項目也還沒有完全采用HTTPS。
  2. 第二種方法是 使用RSA校驗

RSA 加密流程

JSPatch作者有提供打包加密的工具JSPathc Loader

b. 執(zhí)行安全

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

防crash機制

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

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

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

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