本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【j2开奖】苹果「热修复门」事件复盘、分析和展望

时间:2017-03-13 20:19来源:香港现场开奖 作者:本港台直播 点击:
日前,有关苹果挥刀热修复的新闻引起了众多iOS开发者的热议。InfoQ 移动开发领域主编为此特意撰文,梳理事件前后经过,以及近期动向、后期可能影响,以供大家参考。 编者按 3月

  日前,有关苹果挥刀热修复的新闻引起了众多iOS开发者的热议。InfoQ 移动开发领域主编为此特意撰文,梳理事件前后经过,以及近期动向、后期可能影响,以供大家参考。

  编者按

3月8日,很多iOS开发者收到了苹果的警告邮件,声称其App违规使用动态方法,责令限时整改。一时间众说纷纭,有说是针对热修复的,有说是RN也收到警告邮件的,恰逢微软发布Visual Studio 2017,推出了开发React Native for iOS功能,还有说苹果借此来反制微软的。

到底事情真相如何,目前都有哪些动向,会带来什么影响,让我来给大家盘点一下。

  事件梳理

按大概时间梳理整个事件,包括相关各方的反应如下:

3月8日上午,有iOS开发者收到苹果警告邮件或提交App审核时收到拒绝反馈,内容称:检测到开发者的App违规使用动态方法,包括dlopen()dlsym()respondsToSelector:performSelector:method_exchangeImplementations()等,并执行远程脚本,违反了开发者计划许可协议3.3.2以及App Store审核指南条款2.5.2;同时,远程下发脚本可能发生中间人攻击,j2直播,造成安全风险。苹果责令限时整改。

【j2开奖】苹果「热修复门」事件复盘、分析和展望

开发者发现收到此类警告的App大多数是集成了JSPatch、Rollout、React Native、Weex等项目,于是前往各开源项目的Github上发issue,并在官方的苹果开发者论坛上发帖,试图获得更多消息。

React Native开发者澄清并不是它导致的问题,也不是其代增量更新服务Code Push或Expo的锅,但有些RN的插件使用了上面提到的方法,React Native开发者建议用户不要使用这些插件。在警告邮件之后,部分开发者报告React Native开发的App通过审核。随后,开发者逐渐将目标锁定在JSPatch和Rollout这两个热修复工具上。

滴滴出行iOS动态化项目DynamicCocoa作者孙源在发布微博,猜测了苹果如何发现使用这些方法的,并表示DynamicCocoa开源计划暂缓。(不过他之后删除了该微博)

Rollout CEO Erez Rusovsky发表声明,表示他们试图和苹果沟通,认为他们并没有违规,只是“苹果以一个更狭隘的角度去解读现有的规定”,不过他也承认在在苹果转变态度之前,自身无法解决目前面临的问题。

JSPatch作者发布博客,让开发者暂时不要接入JSPatch,并表示希望看到苹果官方的热修复方案。其后,JSPatch官方的补丁托管平台JSPatch.com也发表文章,让用户发布去掉JSPatch的新版本。在此之前,有部分SDK接入了JSPatch,也纷纷发布了去掉该库的新版本。

值得一提的是,苹果在警告邮件之后,并未有针对该事件的官方回复,有人咨询了已离开苹果的Swift创始人Chris Lattner,他表示对热修复没有看法。

  一些疑问

  苹果的目的是什么?

苹果在发送警告邮件之后,社区一直在寻找官方答案,但苹果并没有进一步解释它为什么这么做。开发者只能猜测。

本次涉及到的条款包括:

苹果开发者计划使用协议3.3.2:

Except as set forth in the next paragraph, an Application may not download or install executable code. Interpreted code may only be used in an Application if all s, code and interpreters are packaged in the Application and not downloaded. The only exceptions to the foregoing are s and code downloaded and run by Apple's built-in WebKit framework or JavaCore, provided that such s and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store.

App Store审核条款2.5.2:

Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code, including other iOS, watchOS, macOS, or tvOS apps.

如果单从邮件内容理解,苹果此举是为了严格执行其审核条款,不过在JSPatch如此广泛使用,Rollout甚至成立创业公司来做这件事情的现在才打击,不得不说苹果的反应有点迟钝。并且苹果在发布警告之前,并未与社区进行沟通,至少Rollout和JSPatch都没有接触过。我们想要问,苹果是否真的了解开发者的需求?

从结果来看,最受警告影响的是Rollout和JSPatch两个热修复工具,以及其它类似能绕开苹果审核改变App默认意图的做法。它们都属于Native动态化的范畴。

按审核条款2.5.2的内容,苹果要求应用不得下发可执行代,不得绕过审核,此举是为了加强苹果审核的权威性。

  有多大影响?

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容