/QFJSPatch

jspatchserver实现 + iOS客户端实现

Primary LanguageJavaScriptMIT LicenseMIT

###写在前面 JSPatch的诞生让iOS平台应用实现热更新变得非常方便, 这是一套服务端+客户端的开源解决方案,让iOS开发者也能很方便的集成JSPatch、搭建服务端,不再需要求助于很忙的服务端开发人员。

======= ###贡献者 沉睡的军哥

======= ###使用步骤

####服务端 1.安装nodejs(自行安装)

2.安装sails
npm -g install sails

3.安装pm
npm -g install pm2

4.启动服务端应用
① 生成RSA公钥私钥,参考http://www.jianshu.com/p/bfa57e049a7e
② 将jspatchserver放在服务端,将第一步得到的私钥命名为private_key.pem, 放入jspatchserver/patch/pem目录下
③ 在jspatchserver/patch/js目录下创建以APP命名(自定)的目录,例如TestAPPName,然后在TestAPPName目录下放入需要修复BUG的js文件,命名格式为patch+版本号.js(例如patch1.0.0.js)
④ 定好要使用的端口号,并映射好域名
⑤ 找到jspatchserver/config/local.js文件, vi打开(或者其他方式), 找到port: process.env.PORT这一行,将后面的端口号修改为你在上一步定好的端口号, 例如我要使用端口号8000(port: process.env.PORT || 8000),shift + ':' wq保存退出
⑥ cd到jspatchserver目录下执行npm install
⑦ 执行pm2 start app.js,启动成功,恭喜你,在浏览器中录入你的域名+端口号/jspatch?version=你要修复的版本号&appName=你APP的命名,例如(test.patch.com:8000/jspatch?version=1.0.0&appName=TestAPPName),可以正常看到返回数据,说明环境已通, 你现在可以将需要更新的jspatch(什么?你还没有使用过jspatch, 去这里看看吧https://github.com/bang590/JSPatch,还有这里http://bang590.github.io/JSPatchConvertor/)文件放入jspatchserver/patch/js目录下热修复你的应用了,是不是很简单。

=======
####客户端

1.CocoaPods集成

# Your Podfile
platform :ios, '6.0'
pod 'QFJSPatch'

2.使用
①将在服务端使用过程中生成的公钥命名为public_key.pem,导入到客户端工程
②在合适的位置引入#import "QFJSPatch.h"
③在didFinishLaunchingWithOptions中调用[QFJSPatch execJS];,
applicationDidBecomeActive或者你认为更合的位置调用[QFJSPatch requestJSWithUrl:@"test.patch.com:8000/jspatch?" appName:@"TestAPPName"];

好了,现在你再也不怕线上出BUG了。

注意:iOS10上需要开启Keychain sharing
参考http://stackoverflow.com/questions/38689631/how-to-use-facebook-ios-sdk-on-ios-10/38799196#38799196

=======

###相关阅读 该解决方案与node.js、sails.js、pm2等有关,相关资料如下

  1. nodejs官方网站
  2. sails.js官方网站
  3. pm2

=======