蘋果禁止熱更新有哪些影響
蘋果在6月1日放出大招,全面禁用熱更新。熱更新是什么意思?蘋果禁止熱更新有哪些影響?蘋果App Store為什么禁止熱更新?蘋果是不是完全禁止了熱更新技術(shù)?蘋果為什么要禁止JSPatch 等熱更新技術(shù)?下面學(xué)習(xí)啦小編告訴大家。
熱更新是什么意思
APP熱更新,是指軟件不通過蘋果APP Store軟件版本更新審核,直接在應(yīng)用自行下載的軟件數(shù)據(jù)更新。
蘋果禁止熱更新有哪些影響
除了熱更新不能使用之外(比如一些大型游戲),「不修改就下架」的規(guī)定對于一些目前在線上但很難過審的產(chǎn)品來說是一個很糟糕的消息。比如目前 App Store 中有一些個人賬號下的金融理財類應(yīng)用,幾乎無法通過更新審核,如果有熱更新代碼的話,只能被下架了。同理,這也會影響到很多游戲類與直播類產(chǎn)品(被拒原因通常是相似應(yīng)用、欺詐或第三方支付)和一些超長標(biāo)題的歷史遺留產(chǎn)品,它們的過審難度也相當(dāng)大。
可以預(yù)料到的是,在 6 月 12 日前后,App Store 的 App 下架數(shù)量很可能會出現(xiàn)一次高峰。在這里還是要提醒大家,關(guān)注自家 iTC 后臺有沒有收到相關(guān)通知(很多同學(xué)的賬號可不止一兩個),如果收到就要盡快對產(chǎn)品進(jìn)行調(diào)整了,刪除相關(guān)代碼并提交更新。
蘋果App Store為什么禁止熱更
蘋果禁止熱更新,主要原因是擔(dān)心一些黑客可能會利用熱更新修改 App,給用戶帶來安全隱患,這也與蘋果的安全和隱私政策不符。另外,蘋果此舉既能改善部分使用混編語言的 App 的流暢性,也能重新掌握一些渠道的 App 審核權(quán)限。
6 月 1 日,部分開發(fā)者在 iTC 后臺收到了一則通知:蘋果要求當(dāng)前含有熱更新功能的 App,在 6 月 12 日前移除相關(guān)代碼,否則這些 App 可能會下架。
蘋果App Store審核團(tuán)隊表示,收到此條提醒的開發(fā)者都是目前尚未進(jìn)行熱更新代碼調(diào)整的開發(fā)者,蘋果曾要求移除所有相關(guān)代碼、框架或SDK,并且重新提交版本,為確保應(yīng)用在App Store內(nèi)的正常運(yùn)行,蘋果要求在2017年6月12日之前提交一次更新,如果不作調(diào)整,App可能會從App Store下架——雖然蘋果說的很委婉,不過蘋果的態(tài)度已經(jīng)非常明確了,全面收回 App 更新的審核權(quán)限,熱更新被封殺。一些提供熱更新 SDK 的服務(wù)商也可能收到重大影響,雖然 iOS 的份額在降低,但目前仍是熱更新服務(wù)相當(dāng)重要的市場。
蘋果是不是完全禁止了熱更新技術(shù)
并不是,目前為止收到警告郵件的開發(fā)者絕大部分使用了 JS-Patch 或 Rollout 類庫,剩下未直接使用這些類庫的開發(fā)者,目前初步估計很可能是在集成的第三方 SDK 中使用了上述框架。而未采用上述框架的熱更新技術(shù),目前為止并未收到影響。而絕大部分游戲引擎由于并沒有調(diào)用這些類庫,也自然沒有受到影響。
當(dāng)然,后續(xù)事態(tài)會不會進(jìn)一步擴(kuò)大,還需要看蘋果接下來的策略。但是筆者認(rèn)為,游戲中的熱更新技術(shù)并不會受到蘋果的禁止,作為一名技術(shù)人員,我們不討論產(chǎn)品、商業(yè)等問題,只從技術(shù)角度來看,為什么 JSPatch 蘋果認(rèn)為是不允許的,而游戲引擎的熱更新技術(shù),蘋果目前認(rèn)為是可以的。
蘋果為什么要禁止JSPatch 等熱更新技術(shù)
JSPatch 的原理是,開發(fā)者編寫 JavaScript 代碼,利用蘋果內(nèi)置的 JavaScriptCore.Framework 執(zhí)行,以實(shí)現(xiàn)熱更新功能。這一點(diǎn)看似也符合標(biāo)準(zhǔn),但是在技術(shù)上,存在著重大安全隱患,參考 JSPatch 的業(yè)務(wù)邏輯:
簡單理解,JSPatch 可以理解為所有的 Objective-C 的 API 進(jìn)行了映射,允許開發(fā)者在 JS 端調(diào)用任意原生代碼,這顯然是極其危險的。假設(shè)這段代碼是通過熱更新技術(shù)下載執(zhí)行的,如果在中間存在黑客,把這段代碼動態(tài)替換掉,比如修改為獲取用戶通訊錄并上傳到黑客的服務(wù)器,就會造成重大的安全問題。
猜你喜歡: