iOS实现热修复的几种方案

最近,在调研热修复技术,也称作热更新技术。由于苹果审核周期有时候比较长,这是公司无法忍受的,所以热修复技术应运而生。经过查阅多方面的资料,进行如下总结,希望对大家有所帮助。


现在比较流行的热修复技术:

一、使用JSPatch进行热修复。

      JSPatch能做到通过JS调用和改写OC方法。最根本的原因是 Objective-C 是动态语言,OC上所有方法的调用/类的生成都通过 Objective-C Runtime 在运行时进行,我们可以通过类名和方法名反射得到相应的类和方法,也可以替换某个类的方法为新的实现,还可以新注册一个类,为类添加方法。JSPatch 的原理就是:JS传递字符串给OC,OC通过 Runtime 接口调用和替换OC方法。

      看了一下JSPatch的源码,主要就是通过OC的runtime原理,使用JS语句实现动态更改OC源码的目的,类似C++中的多态性。

      JSPathch是一个开源项目,在github上,下载地址:JSPatch下载地址。里边有相关文档,简单易懂。另外。这里有一篇JSPatch作者写的实现原理,解释的还是蛮不错的,博客地址:JSPatch实现原理

      同时在这里给大家一个比较好的网站 ,OC转JS工具这是一个OC转JS的一个工具网站。

      具体实现参考博客:http://www.jianshu.com/p/8cec322531ae

二、使用ReactNative实现热修复。

      ReactNative是facebook提供的一种开源框架,使用JS语法进行跨平台开发,深受开发者青睐。直接使用ReactNative实现热修复的好像不是很多,比较流行的是使用微软的CodePush。

这个是CodePush 的官方网站地址,这个是CodePushGitHut地址。

具体实现参考博客:http://blog.csdn.net/u011151353/article/details/50688681

三、使用Lua+Wax打补丁的方案实现热修复。

      使用Lua+Wax打补丁的方案,App需要集成Lua解释器和Wax框架(接近1M)。不过waxPatch对Block不太完善,多线程补丁也可能有问题,Wax也已经两年没人维护了,而且Lua调试起来也不方便。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值