今天早上一上班,就收到了苹果发来的一封警告邮件,一看内容,就知道这是个大事啊,还赶紧发了个微博,然后,今天一整天,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,欢迎关注获取更多原创分享。

苹果爸爸发飙,封杀 React Native?相关推荐

  1. 微软发招,苹果发飙,React Native躺枪

    这两天苹果和微软互怼,用脚本热更新的朋友要谨慎过 iOS 审核. 早上有Q群里面在讨论最近用 JavaScript 做为脚本层,在苹果商店审核遭拒的情况. 从目前多数信息来看,cocos2d-js 和 ...

  2. 【苹果家庭推iiMessage】React Native举行开发仍是iOS,用原生的代码实现类似webview的页面

    推荐内容IMESSGAE相关 作者推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者推荐内容 1.家庭推内容 *** 点击即可查看作者要求内容信息 作者推荐内容 2.相册 ...

  3. ios android 发东西,Android、IOS主动发事件给React Native

    IOS(Swift版本) //RNEventEmitter.m #import #import @interface RCT_EXTERN_MODULE(RNEventEmitter, NSObjec ...

  4. React Native Android 从学车到补胎和成功发车经历

    [工匠若水 http://blog.csdn.net/yanbober 未经允许严禁转载,请尊重作者劳动成果.私信联系我] 1 背景 好几个月没发车了,完全生疏了,为了接下来能持续性的发好车,这次先准 ...

  5. 余承东吐槽苹果续航;微软 IE 浏览器被曝漏洞;React Native 0.61.0 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  6. 苹果收购英特尔手机芯片业务;西门子将在华建立 5G 研发中心;React Native 0.60.4 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  7. BAT都在封杀 React/React Native,我该怎么办?

    关乎程序员前途的事情,一定要早知道. 我还没开始学,它就已经被抵制了! 在这件事情上我也是慢半拍的,看到别人的推送"都在封杀 React/React Native ,那我到底还该不该继续学呢 ...

  8. 9月27日科技资讯|余承东吐槽苹果续航;贾扬清担任阿里巴巴开源技术委员会负责人;React Native 0.61.0 发布

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 整理 | 胡 ...

  9. iOS开发者React Native学习路线

    2019独角兽企业重金招聘Python工程师标准>>> http://blog.talisk.cn/blog/2016/08/13/RN-Learning-path-for-iOS- ...

  10. React Native 从入门到原理

    React Native 是最近非常火的一个话题,介绍如何利用 React Native 进行开发的文章和书籍多如牛毛,但面向入门水平并介绍它工作原理的文章却寥寥无几. 本文分为两个部分:上半部分用通 ...

最新文章

  1. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间
  2. Docker的使用(一:Docker入门程序)
  3. java 查询sql_java如何实现sql连接和查询的代码?
  4. TCP数据流稳定性--TCP分片,重组及乱序
  5. 记录一个SpringBoot集成邮件及工具类博客
  6. 每天进步一点点《ML - 异常点检测》
  7. Office 2003 主 Interop 程序集的安装和使用
  8. linq的简单查询 和 组合查询
  9. Linux Bash Shell字符串截取
  10. Java多线程-生产者消费者问题(多个消费者多个生产者)
  11. 转载:cisco voip转码设置
  12. html网页老是崩溃,MSHTML.dll 错误模块导致ie9最近经常崩溃
  13. 致敬学长!J20航模遥控器开源项目计划【开局篇】 | 先做一个开机界面 | MATLAB图像二值化 | Img2Lcd图片取模 | OLED显示图片
  14. UTD2202C示波器如何显示峰峰值
  15. Forward(请求转发)和Redirect(重定向)的比较
  16. 最新 955 不加班的公司名单(2022 版)
  17. ArithmeticException - 没有可确切表示的小数结果
  18. 面向对象简答题:多态的前提条件?
  19. HTML期末学生大作业 响应式动漫网页作业 html+css+javascript
  20. 应用基准化分析—Benchmark

热门文章

  1. PHP(四)运算符、表达式和语句
  2. 磁盘阵列(RAID) 级别
  3. centos下的nginx安装工作记录20130701
  4. C#中类的默认构造函数对类中属性值的初始化情况
  5. 本周leetcode刷题总结!(二叉树)
  6. Illustrator 教程,如何在 Illustrator 中设计插画?
  7. 如何在 Mac 上的“屏幕使用时间”中设置限定通信?
  8. iOS开发之App从点击到启动
  9. mac效率工具alfred 4汉化版
  10. 登录权限验证token