博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS JSPatch 热修复使用
阅读量:4354 次
发布时间:2019-06-07

本文共 1869 字,大约阅读时间需要 6 分钟。

概述

一说到热修复,可能很多人会觉得应该很复杂,很难用(我以前是这么觉得的。。。),实际使用起来蛮简单的,这里以一个小demo演示热修复是如何修复崩溃的,具体更深入的用法,可以看这个

实现原理:

使用

1.下载SDK

打开JSPatch网站,下载SDK:

2.导入依赖库

新建一个项目,名为JSPatchDemo,将下载后的JavaScriptCore.framework文件拖到项目中,并导入libz.dylib(或libz.tbd) 和 JavaScriptCore.framework

 

在AppDelegate里配置,startWithAppKey需要配上自己的Key,在第三步会详细介绍。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    // Override point for customization after application launch.    [JSPatch startWithAppKey:@"你的APPKey"];        //用来检测回调的状态,是更新或者是执行脚本之类的,相关信息,会打印在你的控制台    [JSPatch setupCallback:^(JPCallbackType type, NSDictionary *data, NSError *error) {    }];        [JSPatch setupDevelopment];        [JSPatch sync];        return YES;}

在ViewController里写上一个方法为jsPatchTest,用于改变文本的文字。

#import "ViewController.h"@interface ViewController ()@property (nonatomic, strong) UILabel *label;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        _label = [[UILabel alloc] init];    _label.font = [UIFont systemFontOfSize:14];    _label.frame = CGRectMake(50, 100, 150, 50);    _label.backgroundColor = [UIColor yellowColor];    [self.view addSubview:_label];        [self jsPatchTest];}- (void)jsPatchTest {    self.label.text = @"哈哈哈哈哈哈";}@end

3、获取AppKey并发布

打开JSPatch官网点击左上角注册 -> 

点新增APP,随便填写APP名,如:

将AppKey填写到AppDelegate--StartWithAppKey中

点击添加版本,填写和工程目录的一致,如1.0

 创建一个main.js文件并在里面写上以下代码

defineClass('ViewController', {          jsPatchTest : function() {          self.label().setText("label的text被改掉了");          },})

发布补丁

再次重新打开app,你会发现,会报http的错。。。在info.plist里加上如下代码,允许http访问

NSAppTransportSecurity
NSAllowsArbitraryLoads

总结

总体使用还是比较简单的,更多功能可以去文档中发掘

补充

1、可能很多人都不会写js补丁,好在JSPatch作者还为我们准备了另一个工具。

这个工具可以帮助我们转换OC代码为JS

 

2、JS一定要加密,下面是方法截图和文档:

文档:

 

转载于:https://www.cnblogs.com/jys509/p/5943600.html

你可能感兴趣的文章
SQL Server2012完全备份、差异备份、事务日志备份和还原操作
查看>>
Flash动画播放
查看>>
springmvc+mybatis+dubbo+zookeeper 分布式架构
查看>>
HDUOJ-----Computer Transformation
查看>>
HDUOJ-----2838Cow Sorting(组合树状数组)
查看>>
自定义控件之---抽屉式弹窗控件.
查看>>
一款纯css3实现的机器人看书动画效果
查看>>
加班与效率
查看>>
轻量级Modal模态框插件cta.js
查看>>
MyEclipse下SpringBoot+JSP整合过程及踩坑
查看>>
重定向和管道
查看>>
实验五
查看>>
STL学习笔记(第二章 C++及其标准程序库简介)
查看>>
Operator_countByValue
查看>>
Java 日期往后推迟n天
查看>>
Web应用漏洞评估工具Paros
查看>>
Git 和 Github 使用指南
查看>>
20180925-4 单元测试
查看>>
mysql的数据存储
查看>>
[转载] Activiti Tenant Id 字段释疑
查看>>