大概说 一下 JSPatch 的用法 只是 热修复的话这个 是很好用的 , 咱不是什么大牛, 咱们不说底层实现原理 什么的网上很多, 关于JSPatch 的平台试过 阿里百川 的 但是静态库一直有问题 (但是支持安卓和iOS) 搞了一天 , 后来还是放弃了 毕竟 他们也是封装的 JSPatch , 最后还是决定 用 JSPatc 自家的(只支持iOS) , 导入 和环境配置什么的 官方文档 说的很详细 (阿里简直坑的一笔. 例如支付宝) ,
放上URL : http://www.jspatch.com 这个东西 配合 JSPatchConvertor Url: http://bang590.github.io/JSPatchConvertor/ 简直无敌 .最后还是落实到怎么用吧
一切都从你配置好 环境 开始
比如你这个地方少了 一行代码 导致了一些BUG
打开Xcode 我们新建一个 空文件 后缀 .js
回到 你项目 的工程里 遭到错误的地方加上 修改后的代码
带上 你这 一行 代码所在的 类 所在的方法 比如我的
@implementation HomePageViewController 复制 (别跟我讲什么底层原理 劳资就是梭 粘贴复制 拿起键盘就是干)
我们来到这里
把 右边的 在 复制 好 (如果你精通OC 和 JS 可以忽略) 粘贴到之前的 .js文件中 , 上传JSpatch 平台
顺便 附上 appdelegate 里的 实现
#pragma mark --- JSPatch
- (void)settingJSPatch {
[JSPatch setupLogger:^(NSString *msg) {
//msg 是 JSPatch log 字符串,用你自定义的logger打出
NSLog(@"JS%@", msg);
}];
[JSPatch startWithAppKey:@"a9f187e7af152b3b"];
#ifdef DEBUG
[JSPatch setupDevelopment];
#endif
[JSPatch sync];
[JSPatch setupCallback:^(JPCallbackType type, NSDictionary *data, NSError *error) {
NSLog(@"%ld %@ %@", type, data, error);
}];
}
在上传补丁报的时候 千万注意 当上传文件的时候 会让你 输入 app版本号 这个版本号 一定要和你想 用热修复的 app版本号一致