您目前的位置 : 首页 >> 摇钱树价格 >> 正文

苹果热更新条款要让大批应用下架

日期:2018-2-21(原创文章,禁止转载)

  文 / 腾讯数码 苏扬

  日前,有报道称开发者收到苹果通知,要求"当前含有热更新功能的 App,在 6 月 12 日前移除相关代码,否则这些 App 可能会下架。"

  事实上 3 月份苹果就曾对部分应用程序的开发者发出了相关通知。

  多轮通知足够反映出苹果对采用热更新应用程序潜在安全风险的关注,这也使得外界猜测,苹果要对热更新动刀子了,以至于传出了"王者荣耀、12306 等大批使用热更新机制的游戏和应用不执行就会被下架"的传闻。

  事实真的是这样吗?

  先做一个科普:什么是热更新,为何要热更新。

  热更新简而言之,服务器在不关闭的情况下,用户打开应用即可下载安装更新的代码运行,这是目前移动游戏更新的主流方式之一。

  举个例子,主流的游戏都会根据不同的节假日做大型的活动运营,这种运营基本都是即时性的,热更新是满足这种需求最有效的方式之一,而如果通过提交 App Store 审核的方式下发更新,考虑到 Android 和 iOS 同步,大型游戏可能需要 1 个月甚至更长的审核周期,这一点苹果也应该心知肚明。

  再说全文重点:

  热更新并未被禁止!热更新并未被禁止!热更新并未被禁止!

  接着来看看苹果最新通知是怎么说的:

  以下是通知原文:

  Dear Developer,

  In March of this year we notified you that your app contains code designed explicitly with the capability to change your app ’ s behavior or functionality after App Store Review approval, which is not in compliance with section 3.3.2 of the Apple Developer Program License Agreement and App Store Review Guideline 2.5.2. We requested that you remove any code, frameworks, or SDKs that fall in line with the functionality described above before submitting the next update for your app for review.

  As of this message, we have not received a compliant update for your app.

  To ensure there is no interruption of the availability of your app, please submit an update by June 12th, 2017. If we do not receive an update by that date, your app may be removed from the App Store.

  以下是对应的翻译:

  亲爱的开发者

  在今年 3 月我们已经发过消息提醒,你的 App 内似乎有一些热更新(即绕过 App Store 审核的更新)的代码,这些代码违反了苹果开发者协议的 3.3.2 条款与 App Store 审核指南的 2.5.2 条款。以及,我们曾要求你移除所有相关代码、框架或 SDK,并且重新提交版本。

  在这条消息推送时,我们还成人癫痫病没有收到过你进行过相应的调整。

  为了确保你的 App 在 App Store 内的正常运行,请在 2017/6/12 之前提交一次更新。如果不做调整的话,你的 App 可能会从 App Store 下架。

  围观苹果热更新政策的正确姿势

  苹果官方给开发者发出的通知,关键就在这句话:我们曾要求你移除所有相关代码、框架或 SDK,并且重新提交版本。

  我们从一位匿名开发者那里找到了这样的答案:

  "不符合 2.5.2 条款, App 包含热更新代码,特别提到了 dlopen(),dlsym(),respondingToSelector:, performSelector:, method_exchangeImplementations()这些函数,但是苹果没有禁用热更新,只是禁用了几种热更新框架和技术,而 JSPatch 等苹果不让使用的原因是,能够直接修改代码,可以修改到功能,这样其实绕过了苹果的审核,其他的苹果禁止使用的框架也是如此。"

  关于应对措施,这位开发者的方案是这样,

  "后期提交的版本,要么没有热更癫痫大发作的护理新,要么只能用 React Native 框架热更新,其他如 JSPatch郑州最好癫痫医院、RolloutIO、TriggerIO、WAX ( Lua ) 等都不能用"。

  也就是说,要求移除相关代码、框架和 SDK 只是为了规范开发者的代码,此举会冲击到部分热更新解决方案,但不等于封杀热更新,合理采用热更新机制的产品,不存在也没理由被下架。

  这一点,我们从知乎"如何看待苹果禁止 JSPatch 等 iOS APP 热更新方案?"这个话题中,一位来自白鹭时代的开发者王铎的回答中也找到了相应的答案。

  "截止目前为止,我们也没有收到使用白鹭引擎打包游戏的开发者收到了苹果警告邮件的消息。"

  对于那些受到警告邮件的开发者,王铎的解释如下,

  "目前为止收到警告邮件的开发者绝大部分使用了 JS-Patch 或 Rollout 类库,剩下未直接使用这些类库的开发者,目前初步估计很可能是在集成的第三方 SDK 中使用了上述框架。而未采用上述框架的热更新技术,目前为止并未收到影响。而绝大部分游戏引擎由于并没有调用这些类库,也自然没有受到影响。

  所以苹果确实对于采用热更新机制提出了严格的要求,但如果解读为禁用封杀热更新,并不准确。

  苹果为何要这么做?

  苹果禁止滥用热更新机制,和 iOS 封闭的做法本质上是一致的,为了应用生态的安全可控和体验的一致性,毕竟 App Store 堪称是苹果最大的现金牛之一。

  数据显示,到目前为止 App Store 给开发者的收入分成高达 700 亿美元,去年就达到了 200 亿美元。

  市场研究公司 Macquarie 的分析师 Ben Schachter 在报告中这样写道," App Store 是有史以来最好的商业模式之一,苹果的投资者不需要依赖于苹果的创新来驱动该模式的前进。"

  任何一个小细节都有可能搞砸 App Store 这块大蛋糕,尤其是采用 JSPatch 热更新这种苹果无法把控的应用更新机制。

  据了解,今年二月份网络安全公司 Fire Eye 发现 JSPatch 存在安全漏洞,一旦黑客发现和利用癫痫检查项目这个后门,他们就能够访问到设备中的照片、麦克风和剪贴板数据以及其他涉及个人隐私的功能,App Store 中有 1220 款应用程序可能会受此影响。

  所以,苹果有必要对采用这类机制的开发者提出了"移除所有相关代码、框架或 SDK,并且重新提交版本"的要求。

  总结下来,苹果的禁止了部分热更新的函数、框架和代码,但未禁用热更新机制,所以那些关于王者荣耀、12306 等产品被下架的内容,可能是对苹果开发者条款的误读,只能说你被骗了。

友情链接:

东床娇客网 | 南通大学文学院 | 哈尔滨万达酒店 | 林志玲浴室 | 新角色兰邪恶图片 | 沼气池建设 | 联邦科特