蘋(píng)果為什么要全面禁止熱更新
6月1日,部分開(kāi)發(fā)者在 iTC 后臺(tái)收到了一則通知:蘋(píng)果要求當(dāng)前含有熱更新功能的 App,在6月12日前移除相關(guān)代碼,否則這些APPp 可能會(huì)下架。那么蘋(píng)果為什么要全面禁止熱更新呢?蘋(píng)果全面禁止熱更新怎么辦?下面小編就帶大家一起來(lái)詳細(xì)了解下吧。
6月1日,部分開(kāi)發(fā)者在 iTC 后臺(tái)收到了一則通知:蘋(píng)果要求當(dāng)前含有熱更新功能的 App,在6月12日前移除相關(guān)代碼,否則這些APPp 可能會(huì)下架。
據(jù)相關(guān)報(bào)道,蘋(píng)果在今年 3 月份的時(shí)候就曾向所有開(kāi)發(fā)者推送警告郵件,宣布未來(lái)將禁用 APP 內(nèi)部的“動(dòng)態(tài)分發(fā)”功能。并要求開(kāi)發(fā)者在自家 APP 中刪除 JSPatch 相關(guān)框架,否則 APP 將面臨下架或禁止上架。6月1日,蘋(píng)果再次重申:要求當(dāng)前含有熱更新功能的 APP,在6月12日前移除相關(guān)代碼,否則這些APP可能會(huì)下架。從 6 月12日開(kāi)始,iOS 可能會(huì)出現(xiàn)一次 APP 下架的小高潮。
據(jù)悉,蘋(píng)果已經(jīng)向所有開(kāi)發(fā)者發(fā)送了警告郵件,宣布未來(lái)將禁用APP內(nèi)部的“動(dòng)態(tài)分發(fā)”功能,并要求開(kāi)發(fā)者在自己APP中刪除JSPatch相關(guān)框架,否則APP將面臨下架或禁止上架,最終期限是6月12號(hào)。目前,國(guó)內(nèi)很多APP都使用了JSPatch,其中就有騰訊的微信和QQ等王牌產(chǎn)品。
此次蘋(píng)果的態(tài)度非常明確,封殺熱更新,全面收回APP更新的審核權(quán)限。據(jù)了解,“熱更新”是利用軟件內(nèi)的框架協(xié)議,允許軟件從網(wǎng)絡(luò)中下載并運(yùn)行調(diào)用可執(zhí)行代碼,對(duì)軟件進(jìn)行修改。簡(jiǎn)單來(lái)說(shuō),就是IOS系統(tǒng)用戶通過(guò)Apple store下載APP后,打開(kāi)APP時(shí)遇到的即時(shí)更新。
有評(píng)論稱由于“熱更新”繞過(guò)蘋(píng)果漫長(zhǎng)的審核,直接通過(guò)服務(wù)器推送進(jìn)行版本的迭代,因此被國(guó)內(nèi)眾多APP所采用。在蘋(píng)果看來(lái),這樣的做法對(duì)用戶的信息安全造成了極大的隱患,容易被黑客利用,因此要求IOS開(kāi)發(fā)者移除相關(guān)代碼,并重新提交版本審核。這將使蘋(píng)果自身的系統(tǒng)更為封閉,保障IOS的可控性和安全性。
而上文提到的蘋(píng)果開(kāi)發(fā)者協(xié)議 3.3.2 節(jié)具體內(nèi)容如下:
一個(gè)應(yīng)用程序不應(yīng)該下載或安裝任何可執(zhí)行代碼。解釋執(zhí)行的代碼可以在應(yīng)用內(nèi)使用,如果所有的腳本、代碼,和解釋器都被打包在應(yīng)用內(nèi)而沒(méi)有被下載。前述內(nèi)容的唯一的例外在于下載的腳本和代碼使用了 Apple 內(nèi)置的 WebKit 框架或 JavaScriptCore,并且對(duì)應(yīng)的腳本或代碼并沒(méi)有改變這個(gè)應(yīng)用提供功能和特性的主要目的,與提交到 App Store 的版本以及相應(yīng)的宣傳描述相符。
蘋(píng)果警告郵件波及甚廣,在 GitHub 的 JSPatch 和 react-native 項(xiàng)目下非常多的 iOS 開(kāi)發(fā)者在討論這件事,也因?yàn)樘O(píng)果并沒(méi)有具體指明,導(dǎo)致了大家的各種猜測(cè)。今天,React-Native 官方已經(jīng)辟謠,確認(rèn)不是 React-Native 的問(wèn)題,而是 JSPatch / Rollout 的問(wèn)題,而 JSPatch 作者 bang 也發(fā)文對(duì)此進(jìn)行了回應(yīng),并表示:
動(dòng)態(tài)化還是處于灰色地帶,嚴(yán)格來(lái)說(shuō) RN 是不符合規(guī)則的,但還是被允許,只要不給蘋(píng)果添麻煩,蘋(píng)果就不會(huì)管,JSPatch 因?yàn)榍懊嫣岬降膬牲c(diǎn)風(fēng)險(xiǎn)被管了,怎樣做到使用并不給蘋(píng)果添麻煩呢?
1、減少使用人數(shù),降低影響面;
2、禁止 SDK 接入;
3、接入保證傳輸安全和只用于修復(fù) bug。
第一點(diǎn)警告郵件和代碼檢查使得使用門檻變高了,顯然會(huì)減少使用人數(shù)。第二點(diǎn)第三點(diǎn)只要有一個(gè)平臺(tái)來(lái)管控,是可以做到的,可能的話希望能跟蘋(píng)果審核團(tuán)隊(duì)協(xié)商。
>>>點(diǎn)擊下一頁(yè)了解“蘋(píng)果是不是完全禁止了熱更新技術(shù)”