Apple向熱更新下達最后通牒

之前開發(fā)者都收到了蘋果2017年的新開發(fā)者審核協(xié)議更新通知。

2017年3月8...注意..是女神節(jié)這天坝辫。大量開發(fā)者收到了被拒絕 被警告的郵件,內(nèi)容如下:


Dear Developer,

Your app, extension, and/or linked framework appears to contain code designed explicitly with the capability to change your app’s behavior or functionality after App Review approval, which is not in compliance with section 3.3.2 of the Apple Developer Program License Agreement and App Store Review Guideline 2.5.2. This code, combined with a remote resource, can facilitate significant changes to your app’s behavior compared to when it was initially reviewed for the App Store. While you may not be using this functionality currently, it has the potential to load private frameworks, private methods, and enable future feature changes.

This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), and running remote scripts in order to change app behavior or call SPI, based on the contents of the downloaded script. Even if the remote resource is not intentionally malicious, it could easily be hijacked via a Man In The Middle (MiTM) attack, which can pose a serious security vulnerability to users of your app.

Please perform an in-depth review of your app and remove any code, frameworks, or SDKs that fall in line with the functionality described above before submitting the next update for your app for review.

Best regards,

App Store Review


蘋果審核協(xié)議中有這樣一節(jié):

Apple Developer Program License Agreement

3.3.2 An 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. The only exception to the foregoing is scripts and code downloaded and run by Apple's builtin WebKit framework, provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store.

App Store Review Guideline

2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code, including other iOS, watchOS, macOS, or tvOS apps.

隨后JSPatch群里 射亏,github上都炸了鍋 :https://github.com/bang590/JSPatch/issues/746

react-native 的情況:https://github.com/facebook/react-native/issues/12778

Weex ::https://github.com/alibaba/weex/issues/2875

為什么突然爆發(fā)

突然爆發(fā)并非偶然,蘋果的審核指南一直明確近忙,禁止下載可執(zhí)行代碼竭业,雖然JSPatch等庫使用了JavaScriptCore來巧妙的實現(xiàn),但也不是長久之計银锻,很多開發(fā)者不自覺的使用其來下發(fā)私有方法等等行為遲早會被蘋果發(fā)現(xiàn)永品。也極大的威脅到了極其注重安全的蘋果

再有就是一切涉及到網(wǎng)絡的都會有安全的風險

還有一個有意思的事實,昨天VS2017發(fā)布,號稱內(nèi)置iOS模擬器,直接開發(fā)React Native:

總結(jié)下波及到的庫


rollout击纬,react native,weex钾麸,JSPatch更振,bugtags,個推 ,bugly with hotfix

為什么沒使用熱更新會收到郵件

個人認為蘋果是批量掃描runtime并且群發(fā)的饭尝,蘋果沒辦法批量檢測remote script(遠程腳本下載)

所以機智的檢測熱更新可能使用到的runtime方法肯腕,比如method_exchangeImplementations。這樣基本全覆蓋了那些使用熱更新的APP钥平。

警告"下載腳本代碼且使用runtime方法實現(xiàn)的的APP"下一個版本改掉实撒,如果不改。有可能被下架被拒絕上架涉瘾。

JSPatch是"下載腳本代碼且使用runtime"知态,并不是針對JSPatch一個庫

rollout,react native立叛,weex都會有這種提示负敏。

bugtags ,個推 這種看似沒有熱更新的其實內(nèi)部集成了JSPatch等庫秘蛇,也會有這種提示

Runtime不能繼續(xù)用了?

個人認為原生代碼中使用runtime還是沒問題其做,只是為了提醒那些使用了runtime并且下載遠程腳本改變app行為的人。

如果蘋果把runtime變成私有方法或去掉.那么Objective-C的優(yōu)勢大大的沒有了.....

文章出處(http://www.skyfox.org/apple-2017-hot-patch.html)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赁还,一起剝皮案震驚了整個濱河市妖泄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艘策,老刑警劉巖蹈胡,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異柬焕,居然都是意外死亡审残,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門斑举,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搅轿,“玉大人,你說我怎么就攤上這事富玷¤捣兀” “怎么了既穆?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長雀鹃。 經(jīng)常有香客問我幻工,道長,這世上最難降的妖魔是什么黎茎? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任囊颅,我火速辦了婚禮,結(jié)果婚禮上傅瞻,老公的妹妹穿的比我還像新娘踢代。我一直安慰自己,他們只是感情好嗅骄,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布胳挎。 她就那樣靜靜地躺著,像睡著了一般溺森。 火紅的嫁衣襯著肌膚如雪慕爬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天屏积,我揣著相機與錄音医窿,去河邊找鬼。 笑死肾请,一個胖子當著我的面吹牛留搔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铛铁,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼隔显,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了饵逐?” 一聲冷哼從身側(cè)響起括眠,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎倍权,沒想到半個月后掷豺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡薄声,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年当船,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片默辨。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡德频,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缩幸,到底是詐尸還是另有隱情壹置,我是刑警寧澤竞思,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站钞护,受9級特大地震影響盖喷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜难咕,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一课梳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧余佃,春花似錦惦界、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漂彤。三九已至雾消,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挫望,已是汗流浹背立润。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留媳板,地道東北人桑腮。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像蛉幸,于是被迫代替她去往敵國和親破讨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容