美文网首页
JSPatch热更新技术

JSPatch热更新技术

作者: RichieQ | 来源:发表于2018-10-15 16:16 被阅读0次

    http://www.jspatch.com/

    一、简介

    JSPatch 是一个开源项目(Github链接),只需要在项目里引入极小的引擎文件,就可以使用 JavaScript 调用任何 Objective-C 的原生接口,替换任意 Objective-C 原生方法。目前主要用于下发 JS 脚本替换原生 Objective-C 代码,实时修复线上 bug。

    1、价格

    日请求量小于1w,免费。请求量是以调用[JSPatch sync]次数

    2、耗时

    初始化耗时几毫米

    3、时机

    每次运行的时候,检测有脚本会进行更新,如果想要实时性高点的话,可以把 [JSPatch sync]放在-applicationDidBecomeActive:里,每次唤醒都能同步更新 JSPatch 补丁,不需要等用户下次启动

    二、配置

    1、JSPatch后台上配置要修复指定版本的版本号,版本号需和发布出去的版本号一直(即Appstore上看到的版本号)
    2、脚本名称必须为main.js
    3、生成RSA秘钥
    在 Mac 终端上执行 openssl,再执行以下三句命令,生成 PKCS8 格式的 RSA 公私钥,执行过程中提示输入密码,密码为空(直接回车)就行。

    openssl >
    genrsa -out rsa_private_key.pem 1024
    pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt
    rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
    

    4、客户端代码调用setupRSAPublicKey

    #import <JSPatchPlatform/JSPatch.h>
    @implementation AppDelegate
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        [JSPatch startWithAppKey:@"你的AppKey"];
        [JSPatch setupRSAPublicKey:@"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSGge71bOb+nlTwUgiHMJN8Aki\nTOy+mBULlVi70jKkO20+PNUp1zlkzAPHkgqHeWH8jLGYVUPbhpcrTVad9eHhouik\nBDRvRNCgdS75wDimBQYUJj8fOneqE2d7oc5ODp1B8NS0O+TZK2kO+tm1gw8+/9xP\nsw4C7/YZka+gbilFeQIDAQAB\n-----END PUBLIC KEY-----"];
        [JSPatch sync];
        ...
    }
    @end
    

    5、安全性较高的话,下载JSPatchEncryptor,并执行下面命令加密main.js

    # 当前目录文件:JSPatchEncryptor / main.js / rsa_private_key.pem
    $ ./JSPatchEncryptor -v 1.2 -js main.js -rsa rsa_private_key.pem
    

    即会生成 patch.tar 文件,直接在发布新补丁处上传此文件,即可完成脚本下发,无需上传rsa秘钥

    注意:要生成patch.tar的时候,需要将_JSPatchTmpFile文件夹和patch.tar删除,避免打出来的包更新会提示解压失败

    相关文章

      网友评论

          本文标题:JSPatch热更新技术

          本文链接:https://www.haomeiwen.com/subject/aejsnxtx.html