1.什麼是熱更新。git
受限於iOS平臺須要先審覈在上線,一旦線上發現bug,想要修復還須要等到下次版本提交,這無形中會帶給咱們一些困擾,尤爲是一些BAT量APP,因此熱更新技術應運而生。github
2.熱更新解決方案。安全
我目前知道的有兩種微信
第一種:微信使用的JSPatch多線程
JSPatch看名字就知道它是經過JS來實現的,大體原理就是經過下發JS腳本,經過消息轉發調一些OC原生的方法,這個框架主要是用到一些JS高階和運行時結合消息轉發來實現,支持cocopods,使用的話須要你有JS功底。app
附:使用介紹框架
在appdelegate引入頭文件,JS文件拖入項目中。lua
在APP啓動後根據版本號判斷是否須要更新JS文件,須要則發起請求得到文件,不須要則執行本地的JS。spa
第二種:支付寶使用的Ali-Wax.net
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/