400-893-5552

苹果「热修复门」事件复盘、分析和展望

 
2017-03-13 14:30:05所属分类:行业动态

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;同时,远程下发脚本可能发生中间人攻击,造成安全风险。苹果责令限时整改。

开发者发现收到此类警告的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,他表示对热修复没有看法。

Copyright © 2013-2018 合肥彼岸互联信息技术有限公司 All Rights Reserved地址:合肥市高新区亚夏汽车大厦17楼
工信部备案号: 皖B2-20150071-4    增值电信业务经营许可证:皖B2-20150071-4 安全联盟认证 安全联盟认证 安全联盟实名认证

copyright@2015 合肥彼岸互联信息技术有限公司

电话:400-893-5552 0551-65371998 QQ:800022936

地址:合肥市高新区亚夏汽车大厦17楼