iOS热更新的几种方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS热更新的几种方案相关的知识,希望对你有一定的参考价值。
ios APP的上架审核一直是个令人困扰的问题,动辄一个星期甚至半个月的审核时间,往往会耽误产品的运营计划。
尤其是,审核过程中难以避免的会被苹果拒绝,然后又是一个周期,很是痛苦。
除了在提交审核前,尽可能的保证产品没有Bug,以及充分研究苹果的app审核政策外,从技术开发层面如果能解决热更新问题,则再好不过了。
所以我简单整理了以下一些技术,可用于产品的内部更新,而不用重新提交给苹果审核。如果有更多的方案,或是错误,也请提出。
1. Hybrid App
混合架构,借助于html,JS等前端技术,实现产品的实时更新。通过建立中间层,搭建前端和Native的桥梁,实现相互通信和数据共享。
常见的混合框架有:Cordova(原PhoneGap),ReactJs/ReactNative以及国内的一些技术(Html5+Runtime,APICloud等,技术原理上应与Cordova是相同的)
这种技术的一个明显的优势是,不需要针对多平台做多次开发。但也并非万能,除了体验上的区别外,一些大的功能还是不可避免的要升级客户端的。比如说Cordova,
是以插件的方式提供原生交互能力的,如果插件不足以支撑新功能,则需要升级版本,更新插件。
2. JSPatch
JSPatch利用了OC的动态特性,在运行时可以获得类对象和方法,也可以修改方法的实现,可以动态添加新类和新方法,以此实现对代码的更新。
不过这种方法不便于新功能的开发和大范围的改动,做一些修复性的更新还是可以的。
稍详细的介绍可参考简书上的这篇文章http://www.jianshu.com/p/8cec322531ae。后续有时间的话,我会深入了解一下JSPatch的源码。
Github上的中文使用说明:https://github.com/bang590/JSPatch/blob/master/README-CN.md
3. xcode 6 之后,苹果开放了 ios 的动态库编译权限。所谓的动态库,其实就是可以在运行时加载。正好利用这一个特性,用来做ios的热更新。【参考 http://www.2cto.com/kf/201507/417661.html】
这种方法通过更新动态链接库的方式,提供热更新方法。不过这种方法我没有验证过(包括lua脚本的方法,也没有了解过),对其可用性易用性不妄加评论。
4.Cocos2D 适用于游戏开发。
以上内容只是简单的整理,并非所有的技术我都得以验证过,如有谬误还请提出。后续会对这些技术一一分析比较。
以上是关于iOS热更新的几种方案的主要内容,如果未能解决你的问题,请参考以下文章