文 | 手游那点事 | 欣欣
今天(6月12日)是苹果禁止部分热更新的第一天,手游那点事发现绝大多数热门游戏都没有受此次新规的影响而下架,此前传出的“王者荣耀、12306等大批使用热更新机制的游戏和应用不执行就会被下架”的传闻不攻自破。但同时,禁止热更新的影响还在持续着,相关的游戏也需要开始修改和配合。
苹果下最后通牒,从今天起必须移除“热更新”相关代码
日前,有开发者收到苹果通知,要求
“当前含有热更新功能的App,在6月12日前移除相关代码,否则这些App可能会下架。”
事实上3月份苹果就曾对部分应用程序的开发者发出了相关通知,多轮的通知已经足够反映出苹果对避免热更新带来潜在安全风险的重视。
热更新,是iOS软件更新的一种,指的是服务器在不关闭的情况下,用户打开APP即可下载安装更新的代码运行,这个更新包可以做得非常小,
最小的只有1M左右,便于开发者更新和用户下载,
不连接WIFI用户也能随意下载。
除了热更新之外,另一种更新方式则是在App Store内将软件重新下载更新,
这对用户来说非常繁琐且重负,
需要重新下载完整游戏包,因此也只有在极少数情况下才会用到。除此之外,热更新不需要通过苹果App Store软件版本更新审核,这也成为了目前绝大多数移动游戏更新的主流方式之一。
限制iOS的热更新,会对移动游戏造成严重的影响,
因为游戏需要时常进行数据更新、BUG修复、大型运营活动等等,这些都需要依靠热更新。
实际上,苹果不是封杀热更新,而是要求开发者采取合理机制
从效果上看,今天是禁止热更新的第一天,热门游戏基本都没有受到影响。手游那点事了解到,这次苹果并不是禁止热更新,而是禁止一些不符合规定的热更新框架和技术。
知乎中的一位匿名开发者给出了进一步的解释:
“不符合2.5.2条款,App包含热更新代码,特别提到了dlopen(),dlsym(),respondingToSelector:,performSelector:,method_exchangeImplementations()这些函数,
但是苹果没有禁用热更新,只是禁用了几种热更新框架和技术,
而JSPatch等苹果不让使用的原因是,能够直接修改代码,可以修改到功能,这样其实绕过了苹果的审核,其他的苹果禁止使用的框架也是如此。”
也就是说,尽管JSPatch等热更新机制被禁止了,但开发者仍然可以用React Native框架进行更新。
“后期提交的版本,要么没有热更新,要么只能用React Native框架热更新,其他如JSPatch、RolloutIO、TriggerIO、WAX(Lua)等都不能用”
。苹果希望借此机会让开发者使用合理的热更新机制。
以规范“热更新”的名义,限制苹果生态中的暴力内容