苹果发通谍拒绝“热更新”,中国程序猿“最受伤”

 新葡亰计算机网络     |      2020-01-30

苹果软件改制一小步,程序猿迈向失业的一大步。

颤抖吧,苹果爸爸要全面禁止应用热更新啦

图片 1

据IT之家6月1日消息 ,APP热更新,是指软件不通过苹果APP Store软件版本更新审核,直接在应用自行下载的软件数据更新,在今年三月,苹果已经警告过部分开发者违反了《苹果开发者计划许可协议》的3.3.2章节以及《App Store审查指南》2.5.2章节的规定,6月1日,部分开发者在iTC后台收到了一则通知:苹果要求当前含有热更新功能的App在6月12日前移除相关代码,否则这些App可能会下架。

近日,苹果向所有开发者推送警告邮件,宣布未来将禁用 APP 内部的“动态分发”功能。并要求开发者在自家 APP 中删除 JSPatch 相关框架,否则 APP 将面临下架或禁止上架。

苹果App Store审核团队表示,收到此条提醒的开发者都是目前尚未进行热更新代码调整的开发者,苹果曾要求移除所有相关代码、框架或SDK,并且重新提交版本,为确保应用在App Store内的正常运行,苹果要求在2017年6月12日之前提交一次更新,如果不作调整,App可能会从App Store下架——虽然苹果说的很委婉,不过下架几乎就已经成为确定的结果。

截止发稿,已有部分开发者新递交的APP受此影响被苹果审核部门拒绝。

由于软件热更新绕过了苹果的审核,黑客开发者有可能会通过提交正常的版本之后,通过热更新的方式修改APP导致安全隐患,这违反了苹果的安全隐私政策。另外苹果此举既能改善部分使用混编语言的App的流畅性,也能重新掌握一些渠道的App审核权限。

这一动作,宣告着 APP Store 为“热更新”判了“死刑”,未来应用更新则将进入“原生”时代,用户需重新下载完整的新版数据包。

可以预料到,从6月12日开始,iOS软件APP可能会出现一次下架的小高潮。

什么是“热更新”?

看到这里,可能有很多读者就疑惑甚至费解了,到底哪些才算是热更新呢?如何实现热更新呢?各位看官莫要着急,待legendshop小编细细道来:总的来说,目前市面上,能够实现热更新的技术方案主要有8种:

抛开复杂的技术语言,就是利用软件内的框架协议,允许软件从网络下载并运行调用可执行代码,对软件进行修改。

一、JSPatch

举个例子,就是大家平时打开《阴阳师》或者《王者荣耀》时,弹出的下载更新页面。▼▼▼

热更新时,从服务器拉去js脚本。理论上可以修改和新建所有的模块,但是不建议这样做。

图片 2

建议 用来做紧急的小需求和修复严重的线上bug。

如果热更新被禁用,对于玩手游的上班族来说,不得不面临这样的情况:

二、lua脚本

在工作岗位上兢兢业业了一天,终于可以在公交地铁上玩上两把;

比如:wax。热更新时,从服务器拉去lua脚本。游戏开发经常用到。

突然发现游戏有更新,需要下载完整的软件安装包;

三、Weex

图片 3

跨平台,一套代码,iOS、Android都可以运行。用前端语法实现原生效果。比React Native更好用。

然而由于 APP Store 的限制,大于100M的安装包只能在连接WiFi时下载;

weex基于vue.js,ReactNative使用React。

满脸遗憾的你默默将程序关闭,叹了一声:还是算了吧,回家还得做饭看孩子呢。

ReactNative安装配置麻烦。weex安装cli之后就可以使用。

然而更崩溃的,莫过于中国的“程序猿”们。

react模板JSX有一定的学习成本,vue和常用的web开发类似,模板是普通的html,数据绑定用mustache风格,样式直接使用css。

这次被禁的 JSPatch / wax/ rollout 热修复框架,由于代码命令简单,程序员的学习成本低,使用频次高,成为了许多国内iOS开发者非常热衷使用的一个框架。使用 JSPatch 的APP中,有很多是我们耳熟能详的▼▼▼

淘宝干的漂亮,中国在编码的实力越来越牛叉了。威武!!!

图片 4

四、React Native

目前国内的开发环境,把不得自家APP早日上线盈利,难免会遇到一些bug或者一些产品经理“突发奇想”出来的需求。

不像Weex能一套代码多端运行,需要自己分别做修改。

如果使用“原生应用”重新打包,就面临着苹果平台的“二次审核”,即使这两年苹果加快了审核速度,但1-2天的审核周期(之前大约要7天),对于恨不得“周更”的国内APP来说,确实过于漫长。

React

由于“热修复”直接可以通过服务器推送并进行下载迭代,可以避过苹果“二次审核”,于是就成为了国内开发者们最爱用的一个框架。

Native可以动态添加业务模块,但无法做到修改原生OC代码。

图片 5

JSPatch、lua配合React Native可以让一个原生APP时刻处于可扩展可修改的状态。

可惜苹果一声令下,这些国内iOS开发者们,都要面临“回炉重造”,以适应新的审核制度。

五、Hybrid

为什么外国的开发者表示影响不大呢?

像PhoneGap之类的框架,基本概念和web差不多,通过更新js/html来实现动态化,没有原生的效果流畅。