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 平台
JSPatch
需要使用者有一个后台可以下发和管理脚本,并且需要处理传输安全等部署工作,JSPatch
平台帮你做了这些事,提供了脚本后台托管,版本管理,保证传输安全等功能,让你无需搭建一个后台,无需关心部署操作,只需引入一个SDK即可立即使用JSPatch
。
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/04/01/ios-hotfix-framework-jspatch/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论