iOS App热更新方案推介-JSPatch

  热更新三方平台
  热更新,即App不需要上线新版本就可以进行Bugfix,我觉得JSPatch是对开发者比较友好的热修复框架,原因有三:

  • 基于iOS内置的JavascriptCore引擎和Object-C的runtime机制实现,集成简单
  • 热修复脚本文件使用JavaScript语言编写,容易上手
  • 多个JSPatch脚本下发平台支持,无须开发者再烦心脚本下发,以及脚本下发安全问题

1 JSPatch简介

  JSPatch是腾讯工程师bang开源的一个基于JavascriptCore引擎和Object-C runtime机制的热修复框架,现已经被广泛应用在iOS App的热修复上,脚本文件使用JavaScript语言编写。
  关于JSPatch的原理剖析以及使用方法介绍,网上已经有很多文章,我也不班门弄斧了,这里有两篇文章,都是作者bang自己写的,参考意义比较大,适合大家学习。
  JSPatch实现原理详解
  【腾讯Bugly干货分享】JSPatch 成长之路
  至于想要知道如何编写JSPatch脚本文件,以及脚本文件的语法的可以移驾JSPatch的github地址。

2 JSPatch脚本下发平台

  由于项目需要,接触过两个平台,一个是Bugly,一个是JSPatch,比较倾向于JSPatch,从bang在他的github readme中重点推荐JSPatch以及名称上就能够知道JSPatch的正宫位置了,所以接下来我们只讨论JSPatch。

2.1 关于苹果审核拒绝热修复的问题

  去年(2017年)苹果毫无征兆地对所有使用JSPatch的App开发者发出了一封警告邮件,表明不许使用JSPatch等基于映射的热更新服务,在iOS开发社区引发了热议,当时刚刚开始准备接入JSPatch的我也停下了脚步,保持着观望态度,经过了一段时间的冷却,苹果官方也从一开始零容忍的态度转变为可容忍(并没有发文表态)的态度,而且JSPatch也对此作出了相对应的处理,一方面联系苹果,表明在JSPatch脚本文件下发过程是安全的,一方面针对脚本文件涉及到私有API调用情况进行审核,经过我的试验,现在App中集成JSPatch已经不会被苹果拒绝审核了(似曾相识的场景是吧,之前苹果针对App中的赞赏功能也强制要求内购,现在也变得睁一只眼闭一只眼了)。
  JSPatch平台针对苹果审核拒绝的情况主要作出了以下动作:

  • 脚本下发使用加密传输,避免有人恶意修改下发的脚本代码
  • 脚本文件上传会经过审核处理,如果发现涉及到私有API调用将不允许发布
  • 由于苹果审核时一般采用机器扫描识别代码中JSPatch框架的API,所以在SDK中使用了代码混淆,避免苹果审核时机器识别到

2.2 JSPatch平台的使用

  JSPatch平台的集成十分简单,下发过程由于增加了加密传输,所以安全也能够得到保障,具体可以查看开发文档。
  另外,由于JSPatch平台目前已经没有了免费版,所以大家可以根据自己需要进行套餐选择,如果想要试验可靠性,可以先申请一个账号,再通过邮箱获取到标准版的SDK下载地址就可以有30天的试用期,如果觉得OK再买也没问题。


  写到这里都要感觉自己是JSPatch平台的销售了,不要误会啊,我只是觉得好东西需要分享出来。

你可能感兴趣的:(iOS App热更新方案推介-JSPatch)