苹果为什么要全面禁止热更新
6月1日,部分开发者在 iTC 后台收到了一则通知:苹果要求当前含有热更新功能的 App,在6月12日前移除相关代码,否则这些APPp 可能会下架。那么苹果为什么要全面禁止热更新呢?苹果全面禁止热更新怎么办?下面小编就带大家一起来详细了解下吧。
6月1日,部分开发者在 iTC 后台收到了一则通知:苹果要求当前含有热更新功能的 App,在6月12日前移除相关代码,否则这些APPp 可能会下架。
据相关报道,苹果在今年 3 月份的时候就曾向所有开发者推送警告邮件,宣布未来将禁用 APP 内部的“动态分发”功能。并要求开发者在自家 APP 中删除 JSPatch 相关框架,否则 APP 将面临下架或禁止上架。6月1日,苹果再次重申:要求当前含有热更新功能的 APP,在6月12日前移除相关代码,否则这些APP可能会下架。从 6 月12日开始,iOS 可能会出现一次 APP 下架的小高潮。
据悉,苹果已经向所有开发者发送了警告邮件,宣布未来将禁用APP内部的“动态分发”功能,并要求开发者在自己APP中删除JSPatch相关框架,否则APP将面临下架或禁止上架,最终期限是6月12号。目前,国内很多APP都使用了JSPatch,其中就有腾讯的微信和QQ等王牌产品。
此次苹果的态度非常明确,封杀热更新,全面收回APP更新的审核权限。据了解,“热更新”是利用软件内的框架协议,允许软件从网络中下载并运行调用可执行代码,对软件进行修改。简单来说,就是IOS系统用户通过Apple store下载APP后,打开APP时遇到的即时更新。
有评论称由于“热更新”绕过苹果漫长的审核,直接通过服务器推送进行版本的迭代,因此被国内众多APP所采用。在苹果看来,这样的做法对用户的信息安全造成了极大的隐患,容易被黑客利用,因此要求IOS开发者移除相关代码,并重新提交版本审核。这将使苹果自身的系统更为封闭,保障IOS的可控性和安全性。
而上文提到的苹果开发者协议 3.3.2 节具体内容如下:
一个应用程序不应该下载或安装任何可执行代码。解释执行的代码可以在应用内使用,如果所有的脚本、代码,和解释器都被打包在应用内而没有被下载。前述内容的唯一的例外在于下载的脚本和代码使用了 Apple 内置的 WebKit 框架或 JavaScriptCore,并且对应的脚本或代码并没有改变这个应用提供功能和特性的主要目的,与提交到 App Store 的版本以及相应的宣传描述相符。
苹果警告邮件波及甚广,在 GitHub 的 JSPatch 和 react-native 项目下非常多的 iOS 开发者在讨论这件事,也因为苹果并没有具体指明,导致了大家的各种猜测。今天,React-Native 官方已经辟谣,确认不是 React-Native 的问题,而是 JSPatch / Rollout 的问题,而 JSPatch 作者 bang 也发文对此进行了回应,并表示:
动态化还是处于灰色地带,严格来说 RN 是不符合规则的,但还是被允许,只要不给苹果添麻烦,苹果就不会管,JSPatch 因为前面提到的两点风险被管了,怎样做到使用并不给苹果添麻烦呢?
1、减少使用人数,降低影响面;
2、禁止 SDK 接入;
3、接入保证传输安全和只用于修复 bug。
第一点警告邮件和代码检查使得使用门槛变高了,显然会减少使用人数。第二点第三点只要有一个平台来管控,是可以做到的,可能的话希望能跟苹果审核团队协商。
>>>点击下一页了解“苹果是不是完全禁止了热更新技术”