iOS熱更新實現方式

轉發 鏈接:https://www.jianshu.com/p/00111d447e7e

蘋果靜止熱更新,可惜我的是企業app,沒有這些約束了,隨便用。(當然有些熱更新已經可以通過蘋果審覈了,比如JSPatch)官網說的: JSPatch 平臺 SDK 1.7.2 以上版本可以通過蘋果審覈,可以正常使用。Github 開源版本暫不可用。
最近公司要添加熱修復BUG,其實早之前本人就有簡單實現過,剛好契合公司需求,在此總結一下iOS熱更新實現方式
這個是我根據JSPatch寫的一個Demo:https://github.com/tikeyc/TJSPatchDemo
這是Android熱更新實現方式
一、JSPatch
http://www.jspatch.com/
https://github.com/bang590/JSPatch
熱更新時,從服務器拉去js腳本。理論上可以修改和新建所有的模塊,但是不建議這樣做。

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

官網說: JSPatch 平臺 SDK 1.7.2 以上版本可以通過蘋果審覈,可以正常使用。Github 開源版本暫不可用

二、lua腳本
比如:wax。熱更新時,從服務器拉去lua腳本,遊戲開發經常用到。

三、Weex
http://weex.apache.org/cn/
https://github.com/apache/incubator-weex/
https://github.com/apache/incubator-weex/
跨平臺,一套代碼,iOS、Android都可以運行。用前端語法實現原生效果。比React Native更好用。

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

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

react模板JSX有一定的學習成本,vue和常用的web開發類似,模板是普通的html,
數據綁定用mustache風格,樣式直接使用css。

四、React Native
http://reactnative.cn/
不像Weex能一套代碼多端運行,需要自己分別做修改。

React Native 可以動態添加業務模塊,但無法做到修改原生OC代碼。

JSPatch、lua 配合React Native可以讓一個原生APP時刻處於可擴展可修改的狀態。

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

六、動態庫
可以做demo用,真實使用的時候會被蘋果禁止。

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

七、rollout.io
https://rollout.io/
Rollout緊急修復線上bug。後端有相關的管理頁面。因爲是國外的網站,然後呢,要FQ才能使用。

八、DynamicCocoa
https://github.com/DynamicCocoa/DynamicCocoa

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章