iOS熱更新實現方式

tikeyc發表於2018-01-15

heart.jpg

蘋果靜止熱更新,可惜我的是企業APP...(當然有些熱更新已經可以通過蘋果稽核了,比如JSPatch) 最近公司要新增熱修復BUG,其實早之前本人就有簡單實現過,剛好契合公司需求,在此總結一下iOS熱更新實現方式

這個是我根據JSPatch寫的一個Demo:github.com/tikeyc/TJSP…

一、JSPatch

www.jspatch.com/

github.com/bang590/JSP…

熱更新時,從伺服器拉去js指令碼。理論上可以修改和新建所有的模組,但是不建議這樣做。

建議用來做緊急的小需求和 修復嚴重的線上bug。
複製程式碼

二、lua指令碼

比如:wax。熱更新時,從伺服器拉去lua指令碼,遊戲開發經常用到。
複製程式碼

三、Weex

weex.apache.org/cn/

github.com/apache/incu…

github.com/apache/incu…

跨平臺,一套程式碼,iOS、Android都可以執行。用前端語法實現原生效果。比React Native更好用。

weex基於vue.js,ReactNative使用React。

ReactNative安裝配置麻煩。 weex安裝cli之後就可以使用。

react模板JSX有一定的學習成本,vue和常用的web開發類似,模板是普通的html,
資料繫結用mustache風格,樣式直接使用css。
複製程式碼

四、React Native

reactnative.cn/

不像Weex能一套程式碼多端執行,需要自己分別做修改。

React Native 可以動態新增業務模組,但無法做到修改原生OC程式碼。

JSPatch、lua 配合React Native可以讓一個原生APP時刻處於可擴充套件可修改的狀態。
複製程式碼

五、Hybrid

像PhoneGap之類的框架, 基本概念和web差不多, 通過更新js/html來實現動態化,沒有原生的效果流暢。
複製程式碼

六、動態庫

可以做demo用,真實使用的時候會被蘋果禁止。

因為 打包發到AppStore的ipa安裝包 裡的每個動態庫 都有唯一的編碼,iOS系統會進行驗證,
所以動態通過網路獲取 新的動態庫 也用不了。
複製程式碼

七、rollout.io

rollout.io/

Rollout緊急修復線上bug。後端有相關的管理頁面。因為是國外的網站,然後呢,要FQ才能使用。
複製程式碼

八、DynamicCocoa

github.com/DynamicCoco…


滴滴iOS的一個框架,還沒開源已經有1K+star和許多issue了,
與JSPatch比更加智慧化,用OC在XCode中寫完程式碼,用工具可以自動生成可以更新的js檔案。
複製程式碼

相關文章