iOS實現熱修復的幾種方案

2021-07-23 14:00:23 字數 748 閱讀 4994

最近,在調研熱修復技術,也稱作熱更新技術。由於蘋果審核週期有時候比較長,這是公司無法忍受的,所以熱修復技術應運而生。經過查閱多方面的資料,進行如下總結,希望對大家有所幫助。

現在比較流行的熱修復技術:

一、使用jspatch進行熱修復。

jspatch能做到通過js呼叫和改寫oc方法。最根本的原因是 objective-c 是動態語言,oc上所有方法的呼叫/類的生成都通過 objective-c runtime 在執行時進行,我們可以通過類名和方法名反射得到相應的類和方法,也可以替換某個類的方法為新的實現,還可以新註冊乙個類,為類新增方法。jspatch 的原理就是:js傳遞字串給oc,oc通過 runtime 介面呼叫和替換oc方法。

看了一下jspatch的原始碼,主要就是通過oc的runtime原理,使用js語句實現動態更改oc原始碼的目的,類似c++中的多型性。

同時在這裡給大家乙個比較好的** ,oc轉js工具,

這是乙個oc轉js的乙個工具**。

具體實現參考部落格:

二、使用reactnative實現熱修復。

reactnative是facebook提供的一種開源框架,使用js語法進行跨平台開發,深受開發者青睞。直接使用reactnative實現熱修復的好像不是很多,比較流行的是使用微軟的codepush。

這個是codepush

的官方**位址,這個是codepush

githut

位址。具體實現參考部落格:

三、使用lua+wax打補丁的方案實現熱修復。

熱修復之類載入方案 筆記整理

其中,修復又分為 類載入方案 底層替換方案 instant run 方案。本篇關於 修復的類載入方案的筆記整理。涉及原始碼版本為 android 7.1.1。參考文章 1 android熱更新實現原理 2 android 高階解密 1 理論基礎 類載入方案是基於 dex 分包方案的。dex 分包方案...

iOS 熱更新方案

由於蘋果在2017年3月左右更新了開發者協議,禁止需要線上審核的應用進行熱更新,所以請大家慎用 企業版不需要提交審核當然是可以使用的 一 jspatch 熱更新時,從伺服器拉去js指令碼。理論上可以修改和新建所有的模組,但是不建議這樣做。建議 用來做緊急的小需求和 修復嚴重的線上bug。二 lua指...

iOS App熱修復的設計方案及簡單實踐

首先,開發要提供熱修復的指令碼 這個對於本功能沒有開發工作 其次,要將指令碼上傳到後台 所以後台需要提供上傳的操作頁面 然後,終端裝置每次執行後,就去獲取上傳的指令碼檔案 再然後,獲取到指令碼檔案後,呼叫jspatch引擎,執行指令碼檔案進行修復。大體流程就是這樣。剩下的就是完善上述流程的各個環節 ...