是什么逼得苹果对开发者们下"热更新"的最后通牒

简介:

苹果用一封邮件对“热更新”下达了最后的通牒,也让iOS开发者们度过了坐立不安的一天。

“热更新”也就是动态下发代码,它可以使开发者在不发布版本的情况下,修复BUG和发布功能。这让开发者绕开了苹果的审核机制,避免长时间的审核等待以及多次被拒造成的成本开销。

但现在,苹果正在对“热更新”实行更严厉的审查。昨天,不少开发者收到了来自苹果的邮件。苹果在邮件中表示,将不再允许使用动态下发代码的机制。苹果要求被警告的开发者在下个版本中去除能动态改变应用行为和目标的功能,否则会被拒甚至下架。

undefined

  苹果向开发者发出的邮件

看到这里,技术小白们几乎快要绝望了,到底发生了什么?触控副总裁、Cocos 引擎创始人王哲用一句话来描述这件事情:苹果审核对热更新开刀,国内外厂商中招。

是什么导致了警告?

最开始,王哲在 Cocos 引擎官方微信公众号上提到的原因是 “苹果怒怼微软”:

昨天晚上微软发布 Visual Studio 2017,自带基于 React Native 的 iOS 开发功能,鉴于微软这两年来开源的力量,发布这一功能似乎是在抢占开发者市场。结果就是有了 VS2017,在非苹果上开发 iOS 应用更容易了。所以,苹果在这个节骨眼发出这样的警告邮件,其实暗地里就是要和微软互怼。

不过后来王哲也表示,这只不过是一个调侃。大多数开发者也认为一天内的反应动作也太快了,不可能。

而这个事件背后真正的原因,大部分开发者认为是项目中使用了 JSPatch,Weex,Rollout.io 及其 ReactNative 等平台的热更新技术。随着事情的发展,开发者们发现苹果主要的针对的是 JSPatch,Rollout.io 两家,原因是 ReactNative,Weex 主要的功能是为开发者跨平台的解决方案,热更新只是其附带功能。

目前有开发者汇总了受到影响的第三方 SDK,开发框架,其中包括高德地图,BugTags,个推,Bugly,友盟等。

这件事情在开发人员中引起巨大的关注,是因为这关乎到苹果对于“热更新”这一功能的态度。这次禁止的是代码动态下发,也可以认为是苹果禁止热更新功能,但是部分平台如 React Native 的热更新功能并没有被禁止。因此还有不少开发者困惑,到底什么是“可以”。

但事实上,在苹果开发者条款中早就明确,使用脚本进行热更新,是违反规定的。

undefined

  苹果开发者条款

在王哲看来,苹果过去对这件事的态度是睁一只眼闭一只眼,热更新也早已成为开发者们青睐的一门技术。王哲介绍到国内绝大多数 iOS 手游,不论是 Cocos 还是Unity,都在用热更新功能,一些国内大企业也在使用脚本对游戏进行小版本热更新。

“如果只是为了提高用户体验,这点和苹果的利益出发点是高度一致的。”

王哲认为这是苹果之前没有对热更新痛下杀手的原因。

然而确实也有不少开发者利用这个功能,做一些触犯苹果底线的事情。王哲举例说道:

“热更新可以用来做任何事情,比如一个好好的应用,可以瞬间更新成一个色情小说的 App,这样就绕开了苹果的审核。”

眼下,开发者们还在观察苹果的下一步动态,但不论如何大部分开发者认为“跟着规则走”是他们唯一的选择。ID 为 stormzhang 的业内人士在他的微信公众号AndroidDeveloper 上提了两点建议:

国内 App 如果有在使用 JSPatch 的,那么请移除;

更新或者移除一些第三方使用 JSPatch 的 SDK。

王哲认为事件的核心在于:

“ 别干坏事,如果大家只是为了提高用户体验,提高运营效率,不作恶,就没什么原则上的问题了,剩下的只是技术上的小修复而已。”

本文转自d1net(转载)

目录
相关文章
|
存储 JSON 缓存
CocosCreator3.8研究笔记(十五)CocosCreator 资源管理Asset Bundle
CocosCreator3.8研究笔记(十五)CocosCreator 资源管理Asset Bundle
1415 0
|
流计算 API Apache
Apache Flink 零基础入门(一):基础概念解析
本文是根据 Apache Flink 基础篇系列直播整理而成,由 Apache Flink PMC 戴资力与阿里巴巴高级产品专家陈守元共同分享。Apache Flink 系列入门教程每周更新一期,持续推送。
Apache Flink 零基础入门(一):基础概念解析
|
移动开发 前端开发 数据安全/隐私保护
iOS代码混淆-从入门到放弃
iOS代码混淆-从入门到放弃
389 0
|
数据采集 存储 NoSQL
AArch64架构调用链性能数据采集原理
本次分享的主题是AArch64架构调用链性能数据采集原理,由阿里云苏轩楠分享。主要分为五个部分: 1. 术语解释 2. Frame Pointer RegisterStack Unwind 3. Dwarf-based Stack Unwind 4. /BRBE/CSRE Stack Unwind 5. Kernel-space Stack Unwind&eBPF Unwinders
373 0
|
Dart 前端开发 Android开发
Flutter的架构层
Flutter的架构层
232 1
|
Dart 开发工具 Android开发
快速集成 Flutter Shorebird 热更新
Flutter Shorebird 是一种云端代码推送服务,可以让开发者在几分钟内集成,无需修改代码即可将更新推送到任何 Dart 代码,支持所有 Android 和 iOS 设备,并符合 App Store 和 Play Store 的规定。Shorebird 最大的优点是无代码侵入,快速集成,设计优秀。
865 2
快速集成 Flutter Shorebird 热更新
|
JavaScript 前端开发 Java
CocosCreator 面试题(十)Cocos Creator 内存管理
CocosCreator 面试题(十)Cocos Creator 内存管理
1097 0
|
缓存
CocosCreator 面试题(八)Cocos Creator 中如何做资源管理
CocosCreator 面试题(八)Cocos Creator 中如何做资源管理
1295 0
|
关系型数据库 MySQL
MySql 计算两个日期的时间差函数
MySql计算两个日期的时间差函数 MySql计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。
13497 1
【2023Unity游戏开发教程】零基础带你从小白到超神02——新建第一个项目
【2023Unity游戏开发教程】零基础带你从小白到超神02——新建第一个项目
165 0

热门文章

最新文章