拼多多被苹果下架成为今天街头巷尾热议的话题,“拼多多犯了什么事儿?是把iPhone卖的太便宜,得罪了库克?”,吃瓜群众对于此事的了解大多仅限于此。业内人士提及的“热更新“被封杀到底是怎么一回事?请看PCEVA的分析。
拼多多对于被下架的解释是“存在技术BUG“,事实上很多被下架的应用都是因为“违规修复BUG”而被苹果下架。
虽然听起来匪夷所思,为了修复自己应用的BUG,结果被苹果从应用商店下架了?!我们需要了解从去年6月开始苹果就一再强调的“禁止热更新”政策。何为热更新,大神经常挂在嘴边的“JSPatch”又是怎么一回事呢?
原来,苹果对于APP应用的审核非常严格,所有版本更新都必须通过App Store进行。而苹果对于应用更新的审核效率又不是特别高,为了尽快修复BUG,程序猿们祭出了“热更新”的方式:无需提交苹果审核,直接给用户手机中安装的应用远程打补丁。
一种热更新手段使用JavaScript,动态植入代码替换掉存在BUG的部分,完成给应用打补丁过程,其中最出名的热更新方法就是由国人自己开发、目前已经开源可以免费使用的JSPatch。热更新并不一定出现进度条,很多时候用户甚至感觉不到热更新的过程,漏洞就已经被修复了。
不过这样的举动逃不过苹果的眼睛,将违规应用下架就是对开发者最直接的惩处方式。下载通道被阻断,开发者自然急如热锅上的蚂蚁。有很多网友对此很不理解,认为这是苹果霸道的表现,既然热更新这么方便,为什么不给用呢?
原来JSPatch存在严重的安全漏洞,容易被黑客利用发起针对苹果用户的攻击。此外,恶意应用开发者还可以先用正常的代码通过苹果应用商店的审核,再以JSPatch热更新的方式将恶意代码注入给用户,从而令苹果对应用上架前的审核变得形同虚设。
正是因为潜在的安全风险,针对JSPatch等热更新手段面临的限制会越来越多,包括使用收费JSPatch服务平台的应用目前也遇到了无法通过苹果审核的问题。向往自由的互联网用户通常不喜欢被限制,但作为一个闭源的生态系统,严格的审查和对应用权限的限制正是iOS的魅力之一:很多人已经受够了安卓平台下的流氓应用。没有约束的自由是危险的。
苹果封杀的“热更新”主要是指改变可执行代码的行为(安全风险高),而诸如12306等应用在运行时更新本地数据库或资源包的做法,目前来看并没有受到影响。
|