昨天是蘋(píng)果正式施行熱更新規(guī)范的日子,但是蟬大師發(fā)現(xiàn),關(guān)于蘋(píng)果禁止熱更新這事,很多人都誤解了。在這里,我們給大家詳細(xì)的說(shuō)明并分析新規(guī)對(duì)App的影響。
首先要給大家直白一點(diǎn)的解釋什么是熱更新。熱更新就是用戶在通過(guò) App Store 下載完應(yīng)用后,一打開(kāi)應(yīng)用就會(huì)遇到即時(shí)更新的需求。
舉個(gè)栗子,我們最熟悉的12306😳,經(jīng)常點(diǎn)開(kāi)應(yīng)用就會(huì)出現(xiàn)讓你下載更新的提示,這個(gè)就是熱更新。它不需要你去App Store重新下載更新。
蘋(píng)果不是全面封殺熱更新,而是針對(duì)部分
蘋(píng)果在最新的通知里是這樣寫(xiě)道的:在今年 3 月我們已經(jīng)發(fā)過(guò)消息提醒,你的 App 內(nèi)似乎有一些熱更新(即繞過(guò) App Store 審核的更新)的代碼,這些代碼違反了蘋(píng)果開(kāi)發(fā)者協(xié)議的 3.3.2 條款與 App Store 審核指南的 2.5.2 條款。以及,我們?cè)竽?strong>移除所有相關(guān)代碼、框架或 SDK,并且重新提交版本。
注意上面粗體部分,蘋(píng)果不是在全面封殺熱更新,而是針對(duì)性的禁止那些諸如JSPatch所引起的更新漏洞可能被黑客利用,給用戶帶來(lái)安全隱患的熱更新的函數(shù)、框架和代碼。
所以蘋(píng)果只是要讓開(kāi)發(fā)者使用合理的熱更新機(jī)制,目前開(kāi)發(fā)者依然可以用React Native框架來(lái)進(jìn)行更新。
為什么要禁止JSPatch這類熱更新
JSPatch允許開(kāi)發(fā)者在JS端調(diào)用任意原生代碼,這顯然是極其危險(xiǎn)的。假設(shè)這段代碼是通過(guò)熱更新技術(shù)下載執(zhí)行的,如果在中間存在黑客,把這段代碼動(dòng)態(tài)替換掉,比如修改為獲取用戶通訊錄并上傳到黑客的服務(wù)器,就會(huì)造成重大的安全問(wèn)題。
所以蘋(píng)果要求禁止的是這類熱更新,那些合理采用熱更新機(jī)制的應(yīng)用不會(huì)被App Store下架。那些合理采用熱更新機(jī)制的應(yīng)用不會(huì)被App Store下架。
哪些熱更新可以用,哪些不能
JSPatch、RolloutIO、TriggerIO、WAX(Lua)等都不能再用。開(kāi)發(fā)者可以用React Native框架來(lái)進(jìn)行更新。
熱更新條款對(duì)App的影響
從蟬大師今日下架應(yīng)用列表中,我們發(fā)現(xiàn)相較于昨天,今日下架應(yīng)用數(shù)量尚未有明顯異常。不過(guò)當(dāng)中有不少是游戲應(yīng)用。
目前并不能肯定上述一些應(yīng)用就是由于熱更新的問(wèn)題被下架。不過(guò)從收到警告郵件的開(kāi)發(fā)者來(lái)看,他們絕大部分使用了 JSPatch 或 Rollout 類庫(kù),剩下未直接使用這些類庫(kù)的開(kāi)發(fā)者,可能是在集成的第三方SDK中使用了上述框架。所以那些因熱更新問(wèn)題被下架的應(yīng)用很可能就是由于上述原因。開(kāi)發(fā)者們還是盡快使用合理的熱更新框架、代碼,遵守蘋(píng)果新規(guī)為宜。
由此來(lái)看,目前熱更新新規(guī)對(duì)App下架的影響并不算大。但是,對(duì)那些游戲大廠商來(lái)說(shuō)之后的應(yīng)用更新、Bug修復(fù)等耗時(shí)將會(huì)更長(zhǎng),顯然將不利于用戶體驗(yàn)并且會(huì)引起不小的用戶流失量。
注:本文由蟬大師原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處。
愛(ài)盈利(aiyingli.com)移動(dòng)互聯(lián)網(wǎng)最具影響力的盈利指導(dǎo)網(wǎng)站。定位于服務(wù)移動(dòng)互聯(lián)網(wǎng)創(chuàng)業(yè)者,移動(dòng)盈利指導(dǎo)。我們的目標(biāo)是讓盈利目標(biāo)清晰可見(jiàn)!降低門檻,讓缺乏經(jīng)驗(yàn)、資金有限的個(gè)人和團(tuán)隊(duì)獲得經(jīng)驗(yàn)和機(jī)會(huì),提高熱情,激發(fā)產(chǎn)品。