一、简介
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秘钥
网友评论