今天一早,可能部分开发者都已经收到了苹果禁止使用热更新的警告邮件了,呐,邮件的内容是这样的:
于是,各种论坛的 QQ群的iOS 开发者都已经炸锅了,有吐槽的,有表示已经使用然后要苦逼的改项目的,有喜乐见闻的,还有静静吃瓜的:
那么,究竟什么是热更新呢?下面就来看看:
热更新的前世今生
一般来说,我们玩网络游戏的时候,官方会发布公告,说:亲爱的玩家,感谢您对XX游戏的支持,我们的系统会在2017-3-8 12:00到14:00之间维护,维护期间服务器暂时不能登录,bulabula,感谢你对我公司的支持。 ---------XXX运营团队
类似于这种方式呢,开发人员关闭后台服务器然后再把最新的代码发布上来,这中传统的方式就叫做冷更新。但是每次更新都要这样做,大家发现这样不太好啊(然而这并没有什么好的替代方法),玩家玩着玩着就停了,当然不爽了,对游戏公司来说,服务器停一小时这都是损失的是钱啊。so,一般服务器维护时间都是凌晨的时候,只能找一个玩的人比较少的时间。
下面来说说什么是热更新,一般而言,我们的APP在上线前会经过测试人员的测试然后由开发人员修改后,然后再由测试确认后才可以上线的。但是,我们难免保证上线后用户使用后还是有之前未发现的BUG。此时按照,传统的冷更新方式,我们开发者只能修改BUG后,然后重新发布一个新版本,但是做为iOS开发者,大家知道,之前苹果的审核排队时间比较长,一般都是一周左右,最近虽然苹果的效率有所提高,但一般也要2天左右。大家发现这样很不方便有木有。如果你有一个急性子的BOSS,这就更苦逼了有木有。于是乎:热更新应运时代潮流而生。
加入第三方SDK,不修改原生代码,直接通过JavaScript修改原生代码,嗯也就是说不用着急再发布一个新版本直接通过JS修改了一个小BUG,简直是iOS开发者的福音啊有木有!妈妈再也不用担心我审核时间长的问题了。对于修复bug提交审核的开发者来说,热更新技术可以帮开发者避免长时间的审核等待以及多次被拒造成的成本开销。现在iOS端据我所知的SDK的有:React Native、weex、JSPatch等等。
什么,说了这么多,你还是不太明白什么是热更新,那么就举个栗子来说明吧:
我昨天买了辆玛莎拉蒂--Levante,试开的时候没有任何问题,今天早上我开着我新买的车出去兜(zhuang)风(bi),直接开到了200km/h,结果我发现刹车和熄火全坏了,于是情急之下在网上各种求救,此时一家叫做JSPatch的客服MM给我打电话说,他们可以免费帮我在不停车的情况下把我的爱车修好,此时有办法总比没办法好吧,好吧,2分钟后,修车师傅从天而降,果然帮我修好了我的爱车,嗯,此时我发现这方法挺好的,不停车都能把车修好,以后修车还是找他们吧。略略略,个人理解就这样喽。
那么,我想说的是,那些正在学React Native、JSPatch的盆友们你们有没有感到生不逢时,欲哭无泪。
第一:苹果禁止使用热更新技术对广大的开发者而言:有什么影响呢。我们广大的开发者不得不面临BUG修改后,长时间审核货多次被拒绝的时间成本。那么,也保证了开发者,在项目上线前对APP做足够的测试和修改。以保证上线后能有一个完善的版本。
同时:根据我在一些博客和知乎上了解到的一些信息,国外的版本迭代是而严谨的,每次上线前都经过大量的测试后才上线的,所以对于国外的一些企业而言受到的冲击和影响可能不是很大。虽然Facebook推出了React Native,但Facebook自己和国外的一些企业用React Native的地方并不多。
第二,对于国内而言,大公司的项目做的早,测试量大,版本迭代周期长,每次上线都能保证一个相对比较稳定的版本。个人的看法,苹果禁止使用热更新技术对于一些使用React Native,PhoneGap,APIcloud,Cordova等一些采用Javascript混编的项目有一定的影响,而采用这些技术的确可以提高开发效率,节约成本,所牺牲的是APP的流畅度,所以在这个角度来说,部分公司考虑到流畅度的问题,还是会采用Native开发。
第三:苹果公司对于iPhone用户体验、流畅度、信息安全等十分重视的,而苹果之所以会禁止热更新技术就是出于对用户考虑。我个人推测苹果可能也出于对自身的Swift和Objective-C的考虑,诸位想想,如果很多项目种都大量使用了React Native,PhoneGap,APIcloud,Cordova等混编技术,势必对苹果的Swift和Objective-C语言造成一定的影响和冲击。那么苹果会让步还是作出对这些技术打压呢,根据苹果的以往的作风,我推测苹果方面会采取相关打压的手段。
不过这次苹果只是对使用热更新技术的应用发邮件警告,并没有开发者反应产品因此问题被下架。据群里一位朋友说,他在项目中使用了React Native和Objective-C混合开发,在收到警告后APP虽然没有下架,但是在App Store中搜不到了。
那么, 就这样吧,我要去创造BUG了。