蘋果為什麼要全面禁止熱更新

  6月1日,部分開發者在 iTC 後臺收到了一則通知:蘋果要求當前含有熱更新功能的 App,在6月12日前移除相關程式碼,否則這些APPp 可能會下架。那麼呢?蘋果全面禁止熱更新怎麼辦?下面小編就帶大家一起來詳細瞭解下吧。

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


  據相關報道,蘋果在今年 3 月份的時候就曾向所有開發者推送警告郵件,宣佈未來將禁用 APP 內部的“動態分發”功能。並要求開發者在自家 APP 中刪除 JSPatch 相關框架,否則 APP 將面臨下架或禁止上架。6月1日,蘋果再次重申:要求當前含有熱更新功能的 APP,在6月12日前移除相關程式碼,否則這些APP可能會下架。從 6 月12日開始,iOS 可能會出現一次 APP 下架的小高潮。

  據悉,蘋果已經向所有開發者傳送了警告郵件,宣佈未來將禁用APP內部的“動態分發”功能,並要求開發者在自己APP中刪除JSPatch相關框架,否則APP將面臨下架或禁止上架,最終期限是6月12號。目前,國內很多APP都使用了JSPatch,其中就有騰訊的微信和QQ等王牌產品。

  此次蘋果的態度非常明確,封殺熱更新,全面收回APP更新的稽核許可權。據瞭解,“熱更新”是利用軟體內的框架協議,允許軟體從網路中下載並執行呼叫可執行程式碼,對軟體進行修改。簡單來說,就是IOS系統使用者通過Apple store下載APP後,開啟APP時遇到的即時更新。

  有評論稱由於“熱更新”繞過蘋果漫長的稽核,直接通過伺服器推送進行版本的迭代,因此被國內眾多APP所採用。在蘋果看來,這樣的做法對使用者的資訊保安造成了極大的隱患,容易被黑客利用,因此要求IOS開發者移除相關程式碼,並重新提交版本稽核。這將使蘋果自身的系統更為封閉,保障IOS的可控性和安全性。

  而上文提到的蘋果開發者協議 3.3.2 節具體內容如下:

  一個應用程式不應該下載或安裝任何可執行程式碼。解釋執行的程式碼可以在應用內使用,如果所有的指令碼、程式碼,和直譯器都被打包在應用內而沒有被下載。前述內容的唯一的例外在於下載的指令碼和程式碼使用了 Apple 內建的 WebKit 框架或 JavaScriptCore,並且對應的指令碼或程式碼並沒有改變這個應用提供功能和特性的主要目的,與提交到 App Store 的版本以及相應的宣傳描述相符。

  蘋果警告郵件波及甚廣,在 GitHub 的 JSPatch 和 react-native 專案下非常多的 iOS 開發者在討論這件事,也因為蘋果並沒有具體指明,導致了大家的各種猜測。今天,React-Native 官方已經闢謠,確認不是 React-Native 的問題,而是 JSPatch / Rollout 的問題,而 JSPatch 作者 bang 也發文對此進行了迴應,並表示:

  動態化還是處於灰色地帶,嚴格來說 RN 是不符合規則的,但還是被允許,只要不給蘋果添麻煩,蘋果就不會管,JSPatch 因為前面提到的兩點風險被管了,怎樣做到使用並不給蘋果添麻煩呢?

  1、減少使用人數,降低影響面;

  2、禁止 SDK 接入;

  3、接入保證傳輸安全和只用於修復 bug。

  第一點警告郵件和程式碼檢查使得使用門檻變高了,顯然會減少使用人數。第二點第三點只要有一個平臺來管控,是可以做到的,可能的話希望能跟蘋果稽核團隊協商。

  >>>點選下一頁瞭解“蘋果是不是完全禁止了熱更新技術”