苹果爸爸发飙,封杀 React Native?

Advertisement

今天早上一上班,就收到了苹果发来的一封警告邮件,一看内容,就知道这是个大事啊,还赶紧发了个微博,然后,今天一整天,iOS 界都被这个消息炸裂了!

这封警告邮件大概意思就是说,苹果将不再允许使用动态下发代码的机制,如果 App 内部使用了动态下发代码的框架,将有被拒的风险。

所谓的动态下发代码,就是我们常说的热修复、热更新,就是在我们无需发布的版本的情况下,就可以修复 bug ,发布功能,因为 iOS 审核的机制,这项能力在 iOS 界非常重要。

在 iOS 界拥有动态下发能力的有以下几个框架:JSPatch、Rollout、React Native、Weex。

其中 JSPatch 跟 Rollout 是专门的热更新框架,JSPatch 国内应用使用很广泛,包括我们家的也是,Rollout 则是国外使用的较多,是这次针对的主要对象,之前苹果针对这种热更新是睁只眼闭只眼,而这次则是下定了决心要整改,毕竟绕过了苹果爸爸的审核机制,如果以后不加管理,岂不逃出了爸爸的法眼。

这个倒还好,大不了不用热更新罢了,但是一些 App 中使用 React Native 和 Weex 的开发者,同样有人收到了苹果的警告邮件,这可就炸开了锅,要知道 RN、Weex 这种是大厂推出的跨平台框架,这要是被封杀了,一些大厂的 App 要重写就夸张了,这可是致命的打击。

但是在还没确定结论的情况下,之前学很长时间 RN 的同学简直要懵逼了,还有一些没学的同学甚至幸灾乐祸,暗自庆幸,幸亏没学啊,甚至有谣言传有公司把整个 RN 部门都砍了,真是有点看不下去了,所以我觉得应该弄清楚原因,写篇文章。

了解到,这次事情的主要起因在 App Store Review Guide Line 的 2.5.2 这条:

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.

这是在 16 年 WWDC 之后新更新的一条规则。什么意思呢?意思是说,所有被执行的代码都应该包含在 App 里,不能下载代码到本地执行。下发的无论是 OC 还是 JS 或者其他形式的代码,都可以被认为违反了这条规则,都有被拒的风险。

看到这里,我大概就明白了,苹果本次主要是针对下发代码,而 React Native、Weex 这类框架刚好也具备了下发代码的能力,但是他们的主要职责不是为了解决热更新而存在的,而是一种跨平台的解决方案,所以,虽然苹果官方没说明,但是我认为,只是刚好在这个风口浪尖,躺枪了而已。

所以,有些人听风就是雨,不要这么着急下结论,RN、Weex 这种跨平台解决方案虽然现在还不成熟,使用范围也没那么广,我个人也不推荐现在在商业项目使用,但是暂时不用担心会被苹果封杀,如果真的被苹果封杀了,那么微信小程序就不会同意审核过了,因为本质上微信小程序也是类似 RN 的一套方案,请大家具备点基本的思考能力。

而且 React Native 官方也做了回应,说不会受影响,地址在这里:
https://github.com/facebook/react-native/issues/12778

看似苹果的事跟 Android 开发者无关,但是如果苹果封杀了 React Native,那么 Android 界也会受影响,毕竟采用 RN 主要是为了跨平台,苹果都不支持了,谁还会用 RN 来开发 Android 啊,故此,写篇文章给大家说明下。

顺便说下,针对这次苹果事件的解决方案,你们家的 iOS App 很可能会用到:

  1. 国内 App 如果有在使用 JSPatch 的,那么请移除,目前没有其他更好的方案;
  2. 更新或者移除一些第三方使用 JSPatch 的 SDK,目前已知的有高德地图、BugTags、个推、Bugly。

另外,说个题外话,这次事件一出,JSPatch GitHub 官方库的 Issues 有人寻求证实与解决方案,谁知道引来一群吃瓜群众围观、盖楼,那场景相当壮观,只能说中国人把 GitHub 玩坏了,GitHub 本是一个讨论技术的开源社区,把这种不良的风气带到 GitHub 上真的看不下去,在这里呼吁大家,以后不要在 GitHub 干这种事!

地址在这里:
https://github.com/bang590/JSPatch/issues/751

最后,这事一出,很多 iOS 开发者开骂苹果爸爸太霸道,其实我想说,知足吧,身在福中不知福,如果我谷爹能偶尔霸道一回,Android 开发者们估计要高兴疯了!

本文原创发布于微信公众号 AndroidDeveloper,id:googdev,欢迎关注获取更多原创分享。

Similar Posts:

  • 浅谈 React Native

    几天前,Facebook在React.js Conf 2015大会上推出了React Native..一个新框架的出现总是为了解决现有的一些问题,那么对于现在的移动开发者来说,到底有哪些问题React Native能涉及呢? 人才稀缺的问题 首先的问题是:移动开发人才的稀缺.看看那些培训班出来的人吧,经过3个月的培训就可以拿到8K甚至上万的工作.在北京稍微有点工作经验的iOS开发,就要求2万一个月的工资.这说明当前移动互联网和创业的火热,已经让业界没有足够的开发人才了,所以大家都用涨工资来抢人才

  • React Native for Android 学习

    前言 Facebook 在2015.9.15发布了 React Native for Android,把 JavaScript 开发技术扩展到了移动Android平台.基于React的React Native 让前端开发者使用 JavaScript 和 React 编写应用,利用相同的核心代码就可以创建 基于Web,iOS 和 Android 平台的原生应用.在React Native for Android出来之后,本人花了些时间从环境搭建到做出几个demo,从体验来看都挺流畅,具体将此间遇到

  • Facebook 推出 React Native - iOS 移动开发周报

    新闻 <分析师称 14 年四季度 iPhone 销量达 7300 万台>:1 月 25 日上午消息,凯基证券分析师郭明池称,2014 年四季度 iPhone 销量达 7300 万台,iPad 销量达 2140 万台:并预计 2015 年一季度 iPhone 销量为 6160 万台,iPad 销量为 1010 万台. <2014 年 iOS 应用开发者收入超好莱坞美国票房>:市场研究公司 Asymco 分析师霍拉斯·德迪乌 (Horace Dediu) 本周发布研究报告称,iOS 应

  • React Native初识

    做为一名产品经理,你是否遇到过这样的窘境,"帮我把字体调成 16号呗,颜色变成 #FFFF00FF,老大说这里最好改一下",作为一名 app 的开发只能无奈但心里窃喜的告诉你,"只能等下个版本了,必须要重新发布才能改",如果你问为什么不能改了就生效啊,那说明你对技术的理解要么真的很差,要么你就是知道这项 React-Native 新技术所爆发出来的力量. React Native 是 Facebook 推出的一个用 Java 语言就能同时编写 ios,android

  • React Native原生模块与JS模块通信的几种方式

    React Native原生模块与JS模块通信的几种方式 在做React Native开发的时候避免不了的需要原生模块和JS之间进行数据传递,这篇文章将向大家分享原生模块向JS传递数据的几种方式. 方式一:通过Callbacks的方式 说起Callbacks大家都不陌生,它是最常用的设计模式之一.无论是Java,Object-c,C#,还是JavaScript等都会看到Callbacks的身影. 原生模块支持Callbacks类型的参数,该Callbacks对应JS中的function. 在原生

  • React Native Android Gradle 编译流程浅析

    [工匠若水 http://blog.csdn.net/yanbober 未经允许严禁转载,请尊重作者劳动成果.私信联系我] 1 背景 前面已经发车了一篇<React Native Android 从学车到补胎和成功发车经历>,接着就该好好琢磨一下 React Native 周边了,没看第一篇的可以先去看看:这里我们先从 React Native 的 Android 编译来简单揭晓一下 React Native 在集成的过程中到底干了哪些不可告人的坏事:由于我们项目准备以 Gradle 形式接入

  • React Native组件之Switch和Picker和Slide

    React Native组件Switch类似于iOS中的UISwitch:组件Slide类似于iOS中UIslider,组件Picker类似于iOS的UIPickerView.他们的使用方法和相关属性如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

  • Qunar React Native 实践

    http://ued.qunar.com/qrn/component-Checked.html [导语]Qunar React Native(下文简称 QRN)是去哪儿网(Qunar)基于 React Native(下文简称 RN)定制的一套框架,让 RN 用起来更方便快捷,2016 年 3 月上线后已在公司内部大规模应用.透过 QRN 的大规模实践我们可以看到如何更好地去使用 RN. 前言 移动 App 跨平台开发技术因为可以低成本.高效率地完成 App 开发,一直以来都是移动开发的热点.目前

  • React Native 在现有项目中的探路

    移动开发中,native开发性能和效果上无疑是最好的. 但是在众多的情况下,native开发并不是最优的选择.当需求经常改动的时候,当预算有限的时候,当deadline很近的时候,native开发的成本也就体现出来了. 这时候,webview开始大放异彩,快速开发.无需重新发布版本.人员成本低的特点就显现出来了.(这里不指hybrid). 当使用WebView后,就会逐渐发现,用户体验变得一塌糊涂,长时间的loading.操作dom造成的性能问题等等等等··· react native出现后,开

  • React Native相关

    安装相关工具参考(视频):http://ninghao.net/course/3001?a=26 学习参考:http://reactnative.cn/ 学习参考:http://www.ruanyifeng.com/blog/2015/03/react.html 今天是让我非常兴奋的一天,发现了一个非常好的一些网站 最近非常流行一个叫React Native."Learn once, write anywhere(Android,IOS,WEB)" React Native项目成员To