【Gamelook專稿,轉載請註明出處】
Gamelook報道/今天,全球不少開發者紛紛收到瞭發自蘋果的警告郵件,提示開發者的APP因違反蘋果審核規則將被appstore拒絕審核通過。
在事件發生後,github,蘋果開發者社區上大量開發者加入瞭該問題的討論。有開發者反饋自己的app已在appstore搜索不到、但未下架。不過也有某開發者反應,自己使用瞭JSPatch的兩個APP今天上架瞭appstore但未受到警告郵件。
根據開發者討論的結果,主要問題出在蘋果審核規則中禁止下載可執行代碼,這變相的意思就是禁止app熱更新,而據開發者的猜測,蘋果應該是采取瞭批量掃描runtime並給所有涉嫌違規的app的開發者群發瞭郵件,雖然不是所有開發者收到瞭該郵件,但涉及該問題的開發者數量依舊非常龐大。
一直以來,腳本熱更新廣泛被中國地區iOS開發者采用,主要原因是蘋果app提交審核等待時間過長,並不利於遊戲、APP快速更新迭代,假若此次熱更新被蘋果全面禁止,這將極大的影響中國地區iOS開發者。
蘋果開發者條款下:
3.3.2 Except as set forth in the next paragraph, and Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded.
按照規定:
- 在應用/遊戲裡面使用Lua或JavaScript腳本是OK的,這個沒問題。
- 但使用腳本進行熱更新,這是違反蘋果開發者條款的。
有開發者指出可能還有一個重要原因是蘋果要針對微軟VS2017:
昨天晚上微軟發佈瞭Visual Studio 2017,自帶基於React Native的iOS開發功能,鑒於微軟這兩年來開源的力度,發佈這一功能似乎是在搶占開發者市場。結果就是有瞭VS2017,在非蘋果上開發iOS應用更容易瞭。所以,蘋果在這個節骨眼發出這樣的警告郵件,其實暗地裡就是要和微軟互懟。
對此次事件,cocos2d-x引擎創始人王哲對gamelook表示:“此前,國內大傢這麼用熱更,其實都是為瞭提高用戶體驗,沒人亂來,這個蘋果利益訴求一致,所以蘋果也就睜隻眼閉隻眼瞭。而今天的主要問題是APP涉及到動態加載腳本運行,因為蘋果不希望你審核通過的是應用A,然後動態熱更新以下變成功能完全不同的應用B。初步來看,可能是蘋果針對rollout,jspatch這些熱更新框架。”
在該問題的討論區中,有開發者總結認為,使用瞭 rollout,react native,weex,JSPatch,bugtags,個推 ,bugly with hotfix庫的APP會被蘋果審核盯上。
而解決辦法方面,有開發者建議:“如果是類JSPatch這種隻用來熱更新的,暫時去掉這些熱更新的庫吧,或者觀望陣子再上架新包。如果是類React Native,抓緊轉行吧。”