JSPatch热更新技术

2018-10-15  本文已影响0人  RichieQ

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删除,避免打出来的包更新会提示解压失败

上一篇 下一篇

猜你喜欢

热点阅读