iOS 热更新技术探索

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/