苹果禁App热更新一事你看懂了还是懵逼了
展开全文
根据威锋网消息,6 月 1 日苹果向开发者发出的通知中,内附的苹果开发者协议 3.3.2 节明确规定了应用程序禁止下载或安装任何可执行代码,这次的警告像是苹果的最后通牒,苹果
要求所有有关的开发者于 6 月 12 日前提交一次更新,给 10 天整改,去掉代码中的热更新功能,否则将可能受到下架的处理。
更早的警告是在 3 月份,警告内容是开发者不准在 iOS 软件中进行热更新,只不过当时没有 App 因此而下架,大多数开发们也不以为意。现在大家才发现,苹果是要动真格的了。
现在有关苹果禁止热更新的事在国内引发了不小的争论,特别是在开发者圈中,都不能说是一石激起千层浪了,已经是炸锅的效果了。说实话,苹果禁 App 热更新对国内的影响确实大于国外,对在线服务性质突出的 App 大于一般 App(比如一些金融理财、出行、外卖、票务类的应用,以及绝大部分国产网游),所以才引发了大家的关注。
想要读懂苹果这一政策和可能造成影响,我们还是得先弄清楚几个“是什么”和“为什么”。
热更新是怎么回事?
App 的更新有所谓“冷更新”与“热更新”两种手段。
传统情况下,我们玩网游的时候会看到运营公司的公告:亲爱的玩家blablabla,我们的游戏会在 2017 年 x 月 x 日 xx 时到 xx 时进行维护,维护期间暂时无法登陆游戏,开服时间以官方公告为准……感谢您对我们游戏的支持。
像这样更新需要游戏关闭后台,发布最新代码,刷新数据,然后再开启服务器,这就叫做“冷更新”。冷更新每次都要停服,停服多多少少会对游戏的运营造成影响,尤其是对手游 App 来说,关服开服要是做得太频繁,玩家体验就会大打折扣,手游厂商们也会受到经济
损失。
再加上 App 迭代快,没办法每次都通过“冷更新”来修正 BUG,或者给游戏追加一些比较小层面的改动,以前苹果的审核效率不高,首先你要排队,排队之后要等待审核,审核好之后还要等待上架,再加上这类产品都有来自上级的压力,更新效率太慢,就有可能让自己的团队变得很被动。
于是程序员们想出了一个机智的办法,在 App 中加入第三方 SDK,不修改原生代码,直接通过别的汇编工具修改执行代码。这样子就不用发布一个新版本了,直接修改了 BUG,完成了更新。因为这样的更新不需要停止 App 服务,功能不受任何影响,所以称作“热更新”。
热更新方便省事之余,还为开发者节省了等待苹果审核的时间,以及可能多次审核悲剧产生的成本开销,简直就是开发者的福音。尽管现在苹果审核效率已经大大提升,但是尝过“热更新”甜头的人们,又怎么舍得弃之不用呢?
google官方下载app为什么苹果要禁?
“热更新”是程序员们机智的发现,但并不是非常值得提倡的做法。其实不光苹果要禁,这种不经过平台审查,绕开平台在 App 内对 App 进行数据更新的行为在其他地方也是被禁止的。
Google 去年就颁布了禁止热更新公告,只不过国内没有谷歌应用商店,所以遵守的开发者比较少。Steam 平台也不允许游戏未经 Steam 发布更新包而自行更新。
热更新首先产生的是安全问题,先不说开发者会不会乱改自己的 App,苹果更担心一些黑客可能会利用热更新修改 App,给用户带来安全隐患,这也与苹果的安全和隐私政策不符。App 在后台自己下载数据进行更新,然后跳过苹果的审核,完全有可能在上线审核时提交的是正常功能,然后通过审核后,用户安装下载后通过热更新下载到一堆病毒或者一堆吸引代码怎么办?谁说理去?
其次是 App 开发汇编语言的统一性问题。由于热更新需要引入第三方的 SDK,比如 JSPatch 啊,React Native 啊,weex 啊这些,与原生的 Object-C 和 Swift 语言混编在一起,就很可能引起程序的不稳定性,在苹果自己的平台上,混编肯定在体验优化和速度上
都比不上原生。这种一定程度上已经危害到苹果开发环境纯净度的混编,肯定会引起苹果的警惕跟封杀。
苹果和开发者冲突的根源?
在苹果,又或者说在国外,App 开发偏重于“原生”,但是在国内,App 讲究的是“迭代”——
说得更直白一点,叫做打补丁。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。