码迷,mamicode.com
首页 > 移动开发 > 详细

iOS热更新的几种方案

时间:2016-11-06 21:55:25      阅读:473      评论:0      收藏:0      [点我收藏+]

标签:ova   修复   one   体验   icloud   更新   time   com   通过   

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热更新的几种方案

标签:ova   修复   one   体验   icloud   更新   time   com   通过   

原文地址:http://www.cnblogs.com/gyjenjoy/p/6036350.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!