ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入和使用.js文件传输加解密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入和使用.js文件传输加解密相关的知识,希望对你有一定的参考价值。

JSPatch

ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密

ios开发面临审核周期长,修复bug延迟等让人无奈的问题,所以,热修复的产生成为必然。

ios上线APP产生bug,需要及时修复,如何修复:

我整理了jspatch的使用说明,并建立一个简单demo供他人使用和学习,此博客不做详细介绍,具体如何使用附上代码地址:

代码下载地址: https://github.com/niexiaobo/JSPatchUse

 

 

##### demo.js里添加代码:1、重写crashBtnClick方法 2、跳转新建的JPTableViewController控制器

    //1、修改ViewController控制器的handleBtn方法(原控制器漏此方法,会导致崩溃)。

    defineClass(‘ViewController‘, {//defineClass:声明要被修改的控制器
    crashBtnClick: function(sender) { //声明要被修改或重写的方法
    var tableViewCtrl = JPTableViewController.alloc().init()
    self.navigationController().pushViewController_animated(tableViewCtrl, YES)
    },

    })

    //2、新建JPTableViewController控制器

    defineClass(‘JPTableViewController : UITableViewController <UIAlertViewDelegate>‘, [‘data‘], {
    dataSource: function() {
    var data = self.data();
    if (data) return data;
    var data = [];
    for (var i = 0; i < 20; i ++) {
    data.push("通过js创建的cell " + i);
    }
    self.setData(data)
    return data;
    },
    numberOfSectionsInTableView: function(tableView) {
    return 1;
    },
    tableView_numberOfRowsInSection: function(tableView, section) {
    return self.dataSource().length;
    },
    tableView_cellForRowAtIndexPath: function(tableView, indexPath) {
    var cell = tableView.dequeueReusableCellWithIdentifier("cell") 
    if (!cell) {
    cell = require(‘UITableViewCell‘).alloc().initWithStyle_reuseIdentifier(0, "cell")
    }
    cell.textLabel().setText(self.dataSource()[indexPath.row()])
    return cell
    },
    tableView_heightForRowAtIndexPath: function(tableView, indexPath) {
    return 60
    },
    tableView_didSelectRowAtIndexPath: function(tableView, indexPath) {
    var alertView = require(‘UIAlertView‘).alloc().initWithTitle_message_delegate_cancelButtonTitle_otherButtonTitles("Alert",self.dataSource()[indexPath.row()], self, "OK",  null);
    alertView.show()
    },
    alertView_willDismissWithButtonIndex: function(alertView, idx) {
    console.log(‘click btn ‘ + alertView.buttonTitleAtIndex(idx).toJS())
    }
    })


 #####  更新频率

以上是关于ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入和使用.js文件传输加解密的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 客户端上通过 bitcode 为第三方库修复 bug

Android AndFix热补丁动态修复框架使用教程

安卓App热补丁动态修复技术介绍

修不完的bug:Log4j第三次发布漏洞补丁,开源社区已修复1/7受影响Java包

android 动态补丁技术

iOS开发那些事儿热补丁