JSPatch 热修复 - 掘金

今天写了一个jspatch的小demo,每一步都做了截图,如果不了解JSPatch,大家可自行百度。JSPatch首页。 一、背景需求介绍 为什么我们需要一个热修复(hot-fix)技术? | 掘金是中国质量最高的技术分享社区,邀请稀土用户作为 Co-Editor 来分享优质的技术干货,从前端到后端开发,从设计到产品,让每一个掘金用户都能挖掘到有价值的干货。

JSPatch 热修复

阅读 1465
收藏 87
2017-01-05
JSPatch 诞生于 2015 年 5 月,最初是腾讯广研高级 iOS 开发 @bang 的个人项目。 它能够使用 JavaScript 调用 Objective-C 的原生接口,从而动态植入代码来替换旧代码,以实现修复线上 bug。 —— 由稀土君分享

今天写了一个jspatch的小demo,每一步都做了截图,如果不了解JSPatch,大家可自行百度。JSPatch首页

一、背景需求介绍

为什么我们需要一个热修复(hot-fix)技术?

工作中容易犯错、bug难以避免。
开发和测试人力有限。
苹果Appstore审核周期太长,一旦出现严重bug难以快速上线新版本。
作为生产力工具,用户有对稳定性和可靠性的需求。

二、JSPatch简介

JSPatch诞生于2015年5月,最初是腾讯广研高级iOS开发@bang的个人项目。
它能够使用JavaScript调用Objective-C的原生接口,从而动态植入代码来替换旧代码,以实现修复线上bug。
JSPatch在Github.com上开源后获得了3000多个star和500多fork,广受关注,目前已被应用在大量腾讯/阿里/百度的App中。

现在集成开始集成JSPatch

老规矩先导入框架


1.png


链接对应的库


2.png

keychain Sharing需要打开(真机就没事,模拟器跑的时候会报错,本人亲测)


3.png

故意源程序中tableview的代理点击方法中数组越界


4.png

去JSPatch官网注册账号,并且申请一个appkey


5.png

未上线,选填


6.png

复制对应的appkey,在appdelegate中注册一下


7.png

添加版本号,注意与你的app版本号要一样


8.png

补丁里填上需要修复的代码,这里js代码是由对应的oc代码转化的


9.png

运行结果已修复,点击cell的方法已被替换,控制台打印js代码执行的方法


11.png

实时监控成功的补丁数


12.png

demo地址对你有帮助的话就帮忙点颗星。