1.什么是熱更新。
受限於iOS平台需要先審核在上線,一旦線上發現bug,想要修復還需要等到下次版本提交,這無形中會帶給我們一些困擾,尤其是一些BAT量APP,所以熱更新技術應運而生。
2.熱更新解決方案。
我目前知道的有兩種
第一種:微信使用的JSPatch
JSPatch看名字就知道它是通過JS來實現的,大致原理就是通過下發JS腳本,通過消息轉發調一些OC原生的方法,這個框架主要是用到一些JS高階和運行時結合消息轉發來實現,支持cocopods,使用的話需要你有JS功底。
附:使用介紹
在appdelegate引入頭文件,JS文件拖入項目中。
在APP啟動后根據版本號判斷是否需要更新JS文件,需要則發起請求獲得文件,不需要則執行本地的JS。
第二種:支付寶使用的Ali-Wax
Ali-Wax是基於Wax,fork的一份源碼。通過lua語言來實現,支持64位和多線程安全。因為本人不太熟悉lua,暫時不做使用介紹。
參考資料:
https://github.com/bang590/JSPatch/wiki
https://github.com/alibaba/wax/wiki
延伸:
http://blog.cnbang.net/tech/3286/
