欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

华山论剑之浅谈iOS的JSpatch(热更新)

程序员文章站 2022-04-10 20:59:58
...

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


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

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

----->点击前往 JSpatch官网
华山论剑之浅谈iOS的JSpatch(热更新)
2.设置工程名称和工程ID
华山论剑之浅谈iOS的JSpatch(热更新)
3.获取到appKey
华山论剑之浅谈iOS的JSpatch(热更新)
4. 下载JSPatch.framework导入工程.添加下面依赖库
依赖库名称: libz.tbd
华山论剑之浅谈iOS的JSpatch(热更新)
5. 在Appdelegate.m中导入JSPatch.framework库,设置AppID.
#import "AppDelegate.h"

#import <JSPatch/JSPatch.h>

@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 <JSPatch/JSPatch.h>

@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 <JSPatch/JSPatch.h>

@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官网的价钱方面也是要考虑到的一部分问题.



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