博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
华山论剑之浅谈iOS的JSpatch(热更新)
阅读量:7234 次
发布时间:2019-06-29

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

对于iOS开发工程师最苦恼的事情是什么?无疑就是版本上线审核,这应该是我们的通病,每一次上线都是小心翼翼,因为一个不小心就可能被拒,然后打回来再重新修改,然后再次等待.那么有没有种不经过审核,就进行我们的版本迭代技术呢?其实这种技术在很久以前就已经存在了,但是到现在能用的就只剩下JS技术..具体原因不太清楚,就是苹果官方把一些技术给封杀掉了.现在我就讲一下基于JS的热更新技术.那么我们看一下JSpatch具体的操作是如何的.

1. 申请账号,并且添加我们的应用

首先我们先在JSpatch的官网上申请一个账号,然后添加我们的应用.

2.设置工程名称和工程ID

3.获取到appKey

4. 下载JSPatch.framework导入工程.添加下面依赖库
依赖库名称: libz.tbd

5. 在Appdelegate.m中导入JSPatch.framework库,设置AppID.
#import "AppDelegate.h"#import 
@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [JSPatch startWithAppKey:@"你自己的appID"]; //检查更新 [JSPatch sync]; return YES;}复制代码
6.测试本地 JS脚本.

我们生成的JS脚本名称 根据JSpatch官方的要求必须为 main.js,现在我们就在本地测试JS脚本.对于测试,我们会使用到 +testScriptInBundle 这个方法. +testScriptInBundle 这个方法会在工程的沙盒中一直寻找***main.js ***,找到之后执行其中的方法.

#import "AppDelegate.h"#import 
@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //测试 [JSPatch testScriptInBundle]; return YES;}复制代码
注意: +testScriptInBundle 不能与 +startWithAppKey: 一起调用,+testScriptInBundle 只用于本地测试,测试完毕后需要去除。
7.上线模式的变化

当我们上线我们的项目的时候,这时候我们就需要把测试模式转化为上线模式.这时候我们需要把我们的 +testScriptInBundle 去掉, 然后把我们的 ***main.js***文件上传到我们的服务器端.

#import "AppDelegate.h"#import 
@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [JSPatch startWithAppKey:@"你自己的appID"]; //检查更新 [JSPatch sync]; return YES;}复制代码
热更新的技术意义重大,当我们没有七天的时间来让苹果官方审核我们的项目的时候,我们就需要使用到热更新技术,使我们的一些bug,以及一些对应的主题做出对应的修改,意义重大,当然了,JSpatch官网的价钱方面也是要考虑到的一部分问题.

今天只是个开始,后期将会有更加精彩的博文展现给大家.谢谢大家的查看?

转载地址:http://kxlfm.baihongyu.com/

你可能感兴趣的文章
TP-Link wr703N 使用华为HiLink系列上网卡的设置【转】
查看>>
士兵杀敌(四)(树状数组+线段树)
查看>>
Linux 高可用(HA)集群基本概念2
查看>>
Struts+Spring+Hibernate整合入门详解
查看>>
[转载]浅谈组策略设置IE受信任站点
查看>>
【转】maven导出项目依赖的jar包
查看>>
JS实现文本复制与剪切
查看>>
s标签可以if elseif else
查看>>
每天一个linux命令(20):linux chmod命令
查看>>
MySQL复合分区
查看>>
[ACM] POJ 3687 Labeling Balls (拓扑排序,反向生成端)
查看>>
LeetCode - Permutation Sequence
查看>>
eval解析JSON中的注意点
查看>>
BootCamp支持软件6
查看>>
整数对(数学,思维)
查看>>
Could not open Selected VM debug port (8700) (转)
查看>>
VS中遇到的奇怪问题
查看>>
Leetcode: Median of Two Sorted Arrays. java.
查看>>
【探索】在 JavaScript 中使用 C 程序
查看>>
设定事件间隔和延迟
查看>>