蘋果禁止熱更新有哪些影響

  蘋果在6月1日放出大招,全面禁用熱更新。熱更新是什麼意思??蘋果App Store為什麼禁止熱更新?蘋果是不是完全禁止了熱更新技術?蘋果為什麼要禁止JSPatch 等熱更新技術?下面小編告訴大家。

  熱更新是什麼意思

  APP熱更新,是指軟體不通過蘋果APP Store軟體版本更新稽核,直接在應用自行下載的軟體資料更新。

  

  除了熱更新不能使用之外***比如一些大型遊戲***,「不修改就下架」的規定對於一些目前在線上但很難過審的產品來說是一個很糟糕的訊息。比如目前 App Store 中有一些個人賬號下的金融理財類應用,幾乎無法通過更新稽核,如果有熱更新程式碼的話,只能被下架了。同理,這也會影響到很多遊戲類與直播類產品***被拒原因通常是相似應用、欺詐或第三方支付***和一些超長標題的歷史遺留產品,它們的過審難度也相當大。

  可以預料到的是,在 6 月 12 日前後,App Store 的 App 下架數量很可能會出現一次高峰。在這裡還是要提醒大家,關注自家 iTC 後臺有沒有收到相關通知***很多同學的賬號可不止一兩個***,如果收到就要儘快對產品進行調整了,刪除相關程式碼並提交更新。

  蘋果App Store為什麼禁止熱更

  蘋果禁止熱更新,主要原因是擔心一些黑客可能會利用熱更新修改 App,給使用者帶來安全隱患,這也與蘋果的安全和隱私政策不符。另外,蘋果此舉既能改善部分使用混編語言的 App 的流暢性,也能重新掌握一些渠道的 App 稽核許可權。

  6 月 1 日,部分開發者在 iTC 後臺收到了一則通知:蘋果要求當前含有熱更新功能的 App,在 6 月 12 日前移除相關程式碼,否則這些 App 可能會下架。

  蘋果App Store稽核團隊表示,收到此條提醒的開發者都是目前尚未進行熱更新程式碼調整的開發者,蘋果曾要求移除所有相關程式碼、框架或SDK,並且重新提交版本,為確保應用在App Store內的正常執行,蘋果要求在2017年6月12日之前提交一次更新,如果不作調整,App可能會從App Store下架——雖然蘋果說的很委婉,不過蘋果的態度已經非常明確了,全面收回 App 更新的稽核許可權,熱更新被封殺。一些提供熱更新 SDK 的服務商也可能收到重大影響,雖然 iOS 的份額在降低,但目前仍是熱更新服務相當重要的市場。

  蘋果是不是完全禁止了熱更新技術

  並不是,目前為止收到警告郵件的開發者絕大部分使用了 JS-Patch 或 Rollout 類庫,剩下未直接使用這些類庫的開發者,目前初步估計很可能是在整合的第三方 SDK 中使用了上述框架。而未採用上述框架的熱更新技術,目前為止並未收到影響。而絕大部分遊戲引擎由於並沒有呼叫這些類庫,也自然沒有受到影響。

  當然,後續事態會不會進一步擴大,還需要看蘋果接下來的策略。但是筆者認為,遊戲中的熱更新技術並不會受到蘋果的禁止,作為一名技術人員,我們不討論產品、商業等問題,只從技術角度來看,為什麼 JSPatch 蘋果認為是不允許的,而遊戲引擎的熱更新技術,蘋果目前認為是可以的。

  蘋果為什麼要禁止JSPatch 等熱更新技術

  JSPatch 的原理是,開發者編寫 JavaScript 程式碼,利用蘋果內建的 JavaScriptCore.Framework 執行,以實現熱更新功能。這一點看似也符合標準,但是在技術上,存在著重大安全隱患,參考 JSPatch 的業務邏輯:

  簡單理解,JSPatch 可以理解為所有的 Objective-C 的 API 進行了對映,允許開發者在 JS 端呼叫任意原生程式碼,這顯然是極其危險的。假設這段程式碼是通過熱更新技術下載執行的,如果在中間存在黑客,把這段程式碼動態替換掉,比如修改為獲取使用者通訊錄並上傳到黑客的伺服器,就會造成重大的安全問題。