JSPatch小结
例子: app上线了,遇到了重大bug,提交新版本要审核几天,为了避免用户流失,需要马上将bug解决,怎么办?
热更新(热修复):
在IOS开发领域,由于Apple严格的审核标准和低效率,IOS应用的发版速度极慢,稍微大型的app发版基本上都在一个月以上,所以代码热更新对于IOS应用来说就显得尤其重要。
现在最流行的就是利用JSPatch进行热更新(iOS6.0之后)
JSPatch 可以让你用 JavaScript 书写原生 iOS APP。只需在项目引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C 的原生接口,获得脚本语言的优势:为项目动态添加模块,或替换项目原生代码动态修复 bug。
JSPatch的实现原理理解
基础原理
能做到通过JS调用和改写OC方法最根本的原因是 Objective-C 是动态语言,OC上所有方法的调用/类的生成都通过 Objective-C Runtime 在运行时进行,理论上你可以在运行时通过类名/方法名调用到任何OC方法,替换任何类的实现以及新增任意类。所以 JSPatch 的原理就是:JS传递字符串给OC,OC通过 Runtime 接口调用和替换OC方法。。
JSPatch的实现原理学习之处:
JSPatch实现原理详解 http://blog.cnbang.net/tech/2808/
JSPatch Git源码和使用说明 https://github.com/bang590/JSPatch
https://github.com/bang590/JSPatch/wiki/JSPatch-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95
看实现原理详解的时候对照着源码看,比较好理解。