今天一早,可能部分開發(fā)者都已經(jīng)收到了蘋果禁止使用熱更新的警告郵件了侣肄,吶旧困,郵件的內(nèi)容是這樣的:
于是,各種論壇的 QQ群的iOS 開發(fā)者都已經(jīng)炸鍋了稼锅,有吐槽的吼具,有表示已經(jīng)使用然后要苦逼的改項(xiàng)目的,有喜樂見聞的矩距,還有靜靜吃瓜的:
那么拗盒,究竟什么是熱更新呢?下面就來看看:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 熱更新的前世今生
一般來說锥债,我們玩網(wǎng)絡(luò)游戲的時候陡蝇,官方會發(fā)布公告,說:親愛的玩家哮肚,感謝您對XX游戲的支持登夫,我們的系統(tǒng)會在2017-3-8 12:00到14:00之間維護(hù),維護(hù)期間服務(wù)器暫時不能登錄允趟,bulabula恼策,感謝你對我公司的支持。 ? ? ---------XXX運(yùn)營團(tuán)隊(duì) ?
類似于這種方式呢拼窥,開發(fā)人員關(guān)閉后臺服務(wù)器然后再把最新的代碼發(fā)布上來戏蔑,這中傳統(tǒng)的方式就叫做冷更新蹋凝。但是每次更新都要這樣做,大家發(fā)現(xiàn)這樣不太好白芸谩(然而這并沒有什么好的替代方法)鳍寂,玩家玩著玩著就停了,當(dāng)然不爽了情龄,對游戲公司來說迄汛,服務(wù)器停一小時這都是損失的是錢啊。so骤视,一般服務(wù)器維護(hù)時間都是凌晨的時候鞍爱,只能找一個玩的人比較少的時間。
下面來說說什么是熱更新专酗,一般而言睹逃,我們的APP在上線前會經(jīng)過測試人員的測試然后由開發(fā)人員修改后,然后再由測試確認(rèn)后才可以上線的祷肯。但是沉填,我們難免保證上線后用戶使用后還是有之前未發(fā)現(xiàn)的BUG。此時按照佑笋,傳統(tǒng)的冷更新方式翼闹,我們開發(fā)者只能修改BUG后,然后重新發(fā)布一個新版本蒋纬,但是做為iOS開發(fā)者猎荠,大家知道,之前蘋果的審核排隊(duì)時間比較長蜀备,一般都是一周左右关摇,最近雖然蘋果的效率有所提高,但一般也要2天左右琼掠。大家發(fā)現(xiàn)這樣很不方便有木有拒垃。如果你有一個急性子的BOSS,這就更苦逼了有木有瓷蛙。于是乎:熱更新應(yīng)運(yùn)時代潮流而生。
加入第三方SDK戈毒,不修改原生代碼艰猬,直接通過JavaScript修改原生代碼,嗯也就是說不用著急再發(fā)布一個新版本直接通過JS修改了一個小BUG埋市,簡直是iOS開發(fā)者的福音啊有木有冠桃!媽媽再也不用擔(dān)心我審核時間長的問題了。對于修復(fù)bug提交審核的開發(fā)者來說道宅,熱更新技術(shù)可以幫開發(fā)者避免長時間的審核等待以及多次被拒造成的成本開銷∈程現(xiàn)在iOS端據(jù)我所知的SDK的有:React Native胸蛛、weex、JSPatch等等樱报。
什么葬项,說了這么多,你還是不太明白什么是熱更新迹蛤,那么就舉個栗子來說明吧:
我昨天買了輛瑪莎拉蒂--Levante民珍,試開的時候沒有任何問題,今天早上我開著我新買的車出去兜(zhuang)風(fēng)(bi),直接開到了200km/h盗飒,結(jié)果我發(fā)現(xiàn)剎車和熄火全壞了嚷量,于是情急之下在網(wǎng)上各種求救,此時一家叫做JSPatch的客服MM給我打電話說逆趣,他們可以免費(fèi)幫我在不停車的情況下把我的愛車修好蝶溶,此時有辦法總比沒辦法好吧,好吧宣渗,2分鐘后身坐,修車師傅從天而降,果然幫我修好了我的愛車落包,嗯部蛇,此時我發(fā)現(xiàn)這方法挺好的,不停車都能把車修好咐蝇,以后修車還是找他們吧涯鲁。略略略,個人理解就這樣嘍有序。
那么抹腿,我想說的是,那些正在學(xué)React Native旭寿、JSPatch的盆友們你們有沒有感到生不逢時警绩,欲哭無淚。
第一:蘋果禁止使用熱更新技術(shù)對廣大的開發(fā)者而言:有什么影響呢盅称。我們廣大的開發(fā)者不得不面臨BUG修改后肩祥,長時間審核貨多次被拒絕的時間成本。那么缩膝,也保證了開發(fā)者混狠,在項(xiàng)目上線前對APP做足夠的測試和修改。以保證上線后能有一個完善的版本疾层。
同時:根據(jù)我在一些博客和知乎上了解到的一些信息将饺,國外的版本迭代是而嚴(yán)謹(jǐn)?shù)模看紊暇€前都經(jīng)過大量的測試后才上線的,所以對于國外的一些企業(yè)而言受到的沖擊和影響可能不是很大予弧。雖然Facebook推出了React Native刮吧,但Facebook自己和國外的一些企業(yè)用React Native的地方并不多。
第二杀捻,對于國內(nèi)而言,大公司的項(xiàng)目做的早坠七,測試量大水醋,版本迭代周期長,每次上線都能保證一個相對比較穩(wěn)定的版本彪置。個人的看法拄踪,蘋果禁止使用熱更新技術(shù)對于一些使用React Native,PhoneGap拳魁,APIcloud惶桐,Cordova等一些采用Javascript混編的項(xiàng)目有一定的影響,而采用這些技術(shù)的確可以提高開發(fā)效率潘懊,節(jié)約成本姚糊,所犧牲的是APP的流暢度,所以在這個角度來說授舟,部分公司考慮到流暢度的問題救恨,還是會采用Native開發(fā)。
第三:蘋果公司對于iPhone用戶體驗(yàn)释树、流暢度肠槽、信息安全等十分重視的,而蘋果之所以會禁止熱更新技術(shù)就是出于對用戶考慮奢啥。我個人推測蘋果可能也出于對自身的Swift和Objective-C的考慮秸仙,諸位想想,如果很多項(xiàng)目種都大量使用了React Native桩盲,PhoneGap寂纪,APIcloud,Cordova等混編技術(shù)赌结,勢必對蘋果的Swift和Objective-C語言造成一定的影響和沖擊捞蛋。那么蘋果會讓步還是作出對這些技術(shù)打壓呢,根據(jù)蘋果的以往的作風(fēng)姑曙,我推測蘋果方面會采取相關(guān)打壓的手段襟交。
不過這次蘋果只是對使用熱更新技術(shù)的應(yīng)用發(fā)郵件警告,并沒有開發(fā)者反應(yīng)產(chǎn)品因此問題被下架伤靠。據(jù)群里一位朋友說,他在項(xiàng)目中使用了React Native和Objective-C混合開發(fā),在收到警告后APP雖然沒有下架,但是在App Store中搜不到了宴合。
那么焕梅, 就這樣吧,我要去創(chuàng)造BUG了卦洽。