iOS热修复框架JSPatch

什么是 JSPatch

Github:https://github.com/bang590/JSPatch

JSPatch是一个开源项目,只需要在项目里引入极小的引擎文件,就可以使用JavaScript调用任何Objective-C的原生接口,替换任意Objective-C原生方法。目前主要用于下发JS脚本替换原生Objective-C代码,实时修复线上bug。

例如线上 APP 有一段代码出现 bug 导致 crash:

@implementation JPTableViewController
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  NSString *content = self.dataSource[[indexPath row]];  //可能会超出数组范围导致crash
  JPViewController *ctrl = [[JPViewController alloc] initWithContent:content];
  [self.navigationController pushViewController:ctrl];
}
...
@end

可以通过下发这样一段JS代码,覆盖掉原方法,修复这个bug:

//JS
defineClass("JPTableViewController", {
  //instance method definitions
  tableView_didSelectRowAtIndexPath: function(tableView, indexPath) {
    var row = indexPath.row()
    if (self.dataSource().length > row) {  //加上判断越界的逻辑
      var content = self.dataArr()[row];
      var ctrl = JPViewController.alloc().initWithContent(content);
      self.navigationController().pushViewController(ctrl);
    }
  }
}, {})

除了修复bug,JSPatch也可以用于动态运营,实时修改线上APP行为,或动态添加功能。JSPatch 详细使用文档见 Github Wiki

什么是 JSPatch 平台

官网:https://jspatch.com

JSPatch需要使用者有一个后台可以下发和管理脚本,并且需要处理传输安全等部署工作,JSPatch平台帮你做了这些事,提供了脚本后台托管,版本管理,保证传输安全等功能,让你无需搭建一个后台,无需关心部署操作,只需引入一个SDK即可立即使用JSPatch

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/04/01/ios-hotfix-framework-jspatch/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
iOS热修复框架JSPatch
什么是 JSPatch Github:https://github.com/bang590/JSPatch JSPatch是一个开源项目,只需要在项目里引入极小的引擎文件,就可以使用JavaScript调用任何Objec……
<<上一篇
下一篇>>
文章目录
关闭
目 录