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

JSPatch

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())
    }
    })

 #####  更新频率
时间: 2024-10-17 17:42:55

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

iOS开发遇到的坑之六--使用cocopods管理第三方库时,编译出现Library not found for -lPods问题的解决方法

在项目中有时候会遇到Library not found for -lPods(这里的IPods指的是你具体的第三方库)的问题 出现这个错误的原因是:xcode在编译的时候找不到这个库,从而导致项目无法编译! 这里给出几种解决办法: 第一种: a) Search from 'Library' from the Target Settings view and double-click to inspect the value of Library Search Paths b) There are

iOS开发遇到的坑之六--使用cocopods管理第三方库时,编译出现Library not found for -lPods问题的解决办法

在项目中有时候会遇到Library not found for -lPods(这里的IPods指的是你具体的第三方库)的问题 出现这个错误的原因是:xcode在编译的时候找不到这个库,从而导致项目无法编译! 这里给出几种解决办法: 第一种: Search from 'Library' from the Target Settings view and double-click to inspect the value of Library Search Paths There are two v

iOS开发那些事儿(一)热补丁

一.热补丁作用:修复导致崩溃的错误.替换/增加方法.替换原来的界面等等 二.实现手段:JSPatch (使用Objective-C Objective-C和JavaScript jspatch桥.你可以调用任何Objective-C类和方法在JavaScript中的只是其中一小发动机.这使应用程序获取脚本语言的力量:添加模块或更换Objective-C代码来修复漏洞动态).传送门:https://github.com/agelessman/JSPatch 三.Demo: JSPatch导入:拷贝

iOS 开发人才市场饱和了吗?为什么我会继续选择深入学习iOS开发?

前言: 说饱和是饱和的:说不饱和也是不饱和的. 一),几年间移动互联网的飞速发展以及互联网创业的大潮来袭,使得 iOS 开发一职位炙手可热.由于前几年 iOS 开发的稀缺以及自学门槛相对其他技术高(需要 Mac 和 iPhone),加之创业公司大都以移动端产品作为入口,iOS 开发的薪资也水涨船高. 1,随着时间的推移,互联网已经为越来越多的人熟知,同时传统行业一显颓势.不少其他专业的学生听说互联网行业薪水高.门槛低这样的传言,再加上学校吃回扣的老师以及培训机构招生人员的鼓吹纷纷踏入 iOS 培

IOS开发之开发者账号遇到的bug

今天使用开发者账号过期的问题,文件显示 其实今天的问题和这个没有关系,即使上面显示此证书的签发者无效,有时候也是可以用的. 我这里情况比较奇葩,刚刚生成的开发者账号,显示还是"......无效",真是见了鬼了. 在XCode真机运行老出现一个bug或者是提示信息(用Google查了之后)就是证书过期不能用了. 但是经过一下设置,就恢复了作用了:

ios开发 在cell中动态添加图片解决重复出现图层问题

1.在cell初始化的时候创建scrollView,然后往scrollView中添加imageView,最后在重用cell的时候动态计算scrollView的高度 总而言之,就是初始化创建控件要放在cell的init里面,赋值放init外面,不然每次循环都会重复创建imageView视图 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UI

iOS开发&mdash;&mdash;使用Autolayout生成动态高度的TableViewCell单元格

步骤一.TableViewCell中使用Autolayout 要点:Cell的高度必须在Constraints中指明,但不能定死,需要让内部由内容决定高度的View决定动态高度. 如UILabel设置numberOfLines为0,设置好左右约束和上下相对位置的约束后就可以让Label的内在高度尺寸约束决定Label的高,即可让系统推断出整个cell的高.   步骤二.在Controller中设置TableView的属性 要点: self.tableView.estimatedRowHeight

iOS开发之启动动画(动态欢迎界面,非静态Default)

最近在使用<青葱日记>这款App,发现它的启动界面做的很精美. 不同我自己之前简单的替换Default.png图片. 它的动态效果做的不错. 于是乎,花了点时间,自己实现了这个功能. 其实也很简单,具体效果如下 实现起来也不困难.因为我们知道,在应用启动的时候,它会先执行AppDelegate.m中的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)la

iOS开发—在ARC环境中,要使用第三方框架,但是这个框架是MRC(非ARC),怎么做?

在ARC环境中,要使用第三方框架,但是这个框架是MRC(非ARC),怎么做? 利用Xcode,将MRC项目转换成ARC ,但是成功率非常低 (菜单—Edit—Refactor—Conver to Object c ARC ...) 自己手动改,效率低,工作量大,非常容易出错 (推荐)如果是使用第三方框架,只需要把第三方框架打包成一个静态库就可以使用 设置MRC(非ARC)参数 设置添加动态库