今天写了一个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
老规矩先导入框架

链接对应的库

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

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

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

未上线,选填

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

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

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

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

实时监控成功的补丁数

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