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 适用于游戏开发。

 

以上内容只是简单的整理,并非所有的技术我都得以验证过,如有谬误还请提出。后续会对这些技术一一分析比较。

 

posted on 2016-11-06 20:59  阿杰iOS 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/gyjenjoy/p/6036350.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值