自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

蘋果爸爸發(fā)飆,封殺 React Native?

企業(yè)動(dòng)態(tài)
所謂的動(dòng)態(tài)下發(fā)代碼,就是我們常說的熱修復(fù)、熱更新,就是在我們無需發(fā)布的版本的情況下,就可以修復(fù)bug ,發(fā)布功能,因?yàn)閕OS審核的機(jī)制,這項(xiàng)能力在iOS界非常重要。

[[184968]]

今天早上一上班,就收到了蘋果發(fā)來的一封警告郵件,一看內(nèi)容,就知道這是個(gè)大事啊,還趕緊發(fā)了個(gè)微博,然后,今天一整天,iOS界都被這個(gè)消息炸裂了!

這封警告郵件大概意思就是說,蘋果將不再允許使用動(dòng)態(tài)下發(fā)代碼的機(jī)制,如果App內(nèi)部使用了動(dòng)態(tài)下發(fā)代碼的框架,將有被拒的風(fēng)險(xiǎn)。

所謂的動(dòng)態(tài)下發(fā)代碼,就是我們常說的熱修復(fù)、熱更新,就是在我們無需發(fā)布的版本的情況下,就可以修復(fù)bug ,發(fā)布功能,因?yàn)閕OS審核的機(jī)制,這項(xiàng)能力在iOS界非常重要。

在iOS界擁有動(dòng)態(tài)下發(fā)能力的有以下幾個(gè)框架:JSPatch、Rollout、React Native、Weex。

其中 JSPatch 跟 Rollout 是專門的熱更新框架,JSPatch 國內(nèi)應(yīng)用使用很廣泛,包括我們家的也是,Rollout 則是國外使用的較多,是這次針對(duì)的主要對(duì)象,之前蘋果針對(duì)這種熱更新是睜只眼閉只眼,而這次則是下定了決心要整改,畢竟繞過了蘋果爸爸的審核機(jī)制,如果以后不加管理,豈不逃出了爸爸的法眼。

這個(gè)倒還好,大不了不用熱更新罷了,但是一些 App 中使用 React Native 和 Weex 的開發(fā)者,同樣有人收到了蘋果的警告郵件,這可就炸開了鍋,要知道 RN、Weex 這種是大廠推出的跨平臺(tái)框架,這要是被封殺了,一些大廠的 App 要重寫就夸張了,這可是致命的打擊。

但是在還沒確定結(jié)論的情況下,之前學(xué)很長時(shí)間 RN 的同學(xué)簡直要懵逼了,還有一些沒學(xué)的同學(xué)甚至幸災(zāi)樂禍,暗自慶幸,幸虧沒學(xué)啊,甚至有謠言傳有公司把整個(gè) RN 部門都砍了,真是有點(diǎn)看不下去了,所以我覺得應(yīng)該弄清楚原因,寫篇文章。

了解到,這次事情的主要起因在 App Store Review Guide Line 的 2.5.2 這條:

  • 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.

這是在 16 年 WWDC 之后新更新的一條規(guī)則。什么意思呢?意思是說,所有被執(zhí)行的代碼都應(yīng)該包含在 App 里,不能下載代碼到本地執(zhí)行。下發(fā)的無論是 OC 還是 JS 或者其他形式的代碼,都可以被認(rèn)為違反了這條規(guī)則,都有被拒的風(fēng)險(xiǎn)。

看到這里,我大概就明白了,蘋果本次主要是針對(duì)下發(fā)代碼,而 React Native、Weex 這類框架剛好也具備了下發(fā)代碼的能力,但是他們的主要職責(zé)不是為了解決熱更新而存在的,而是一種跨平臺(tái)的解決方案,所以,雖然蘋果官方?jīng)]說明,但是我認(rèn)為,只是剛好在這個(gè)風(fēng)口浪尖,躺槍了而已。

所以,有些人聽風(fēng)就是雨,不要這么著急下結(jié)論,RN、Weex 這種跨平臺(tái)解決方案雖然現(xiàn)在還不成熟,使用范圍也沒那么廣,我個(gè)人也不推薦現(xiàn)在在商業(yè)項(xiàng)目使用,但是暫時(shí)不用擔(dān)心會(huì)被蘋果封殺,如果真的被蘋果封殺了,那么微信小程序就不會(huì)同意審核過了,因?yàn)楸举|(zhì)上微信小程序也是類似 RN 的一套方案,請(qǐng)大家具備點(diǎn)基本的思考能力。

而且 React Native 官方也做了回應(yīng),說不會(huì)受影響,地址在這里:

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

看似蘋果的事跟 Android 開發(fā)者無關(guān),但是如果蘋果封殺了React Native,那么Android界也會(huì)受影響,畢竟采用 RN 主要是為了跨平臺(tái),蘋果都不支持了,誰還會(huì)用 RN 來開發(fā)Android 啊,故此,寫篇文章給大家說明下。

順便說下,針對(duì)這次蘋果事件的解決方案,你們家的iOS App很可能會(huì)用到:

1. 國內(nèi)App如果有在使用JSPatch的,那么請(qǐng)移除,目前沒有其他更好的方案;

2. 更新或者移除一些第三方使用JSPatch的SDK,目前已知的有高德地圖、BugTags、個(gè)推、Bugly。

另外,說個(gè)題外話,這次事件一出,JSPatch GitHub 官方庫的 Issues 有人尋求證實(shí)與解決方案,誰知道引來一群吃瓜群眾圍觀、蓋樓,那場景相當(dāng)壯觀,只能說中國人把 GitHub 玩壞了,GitHub 本是一個(gè)討論技術(shù)的開源社區(qū),把這種不良的風(fēng)氣帶到 GitHub 上真的看不下去,在這里呼吁大家,以后不要在 GitHub 干這種事!

地址在這里:

https://github.com/bang590/JSPatch/issues/751

***,這事一出,很多 iOS 開發(fā)者開罵蘋果爸爸太霸道,其實(shí)我想說,知足吧,身在福中不知福,如果我谷爹能偶爾霸道一回,Android 開發(fā)者們估計(jì)要高興瘋了!

【本文為51CTO專欄作者“stormzhang”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者(微信號(hào):googdev)】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2016-10-13 19:01:59

React NativUbuntu

2016-08-12 08:49:46

React NativFacebookNative

2015-09-22 09:50:36

FacebookAndroid

2017-09-11 14:35:34

編輯器開發(fā)環(huán)境React

2024-07-08 00:00:07

2023-06-24 17:09:06

React前端

2016-08-12 13:55:06

2017-01-04 10:18:00

React NativScrollViewAndroid

2017-01-11 18:44:43

React Nativ觸摸事件Android

2012-06-28 15:19:49

蘋果平板電腦

2016-08-15 13:34:37

React NativiOSjs入口

2024-01-19 09:03:06

ReactTypeScripFlexbox

2017-03-21 21:37:06

組件UI測試架構(gòu)

2024-02-20 01:53:01

ReactFlutter開發(fā)

2023-03-07 16:12:32

2023-02-09 07:15:52

開發(fā)FlutterReact

2017-04-17 06:07:01

React Nativ開發(fā)性能

2023-01-11 18:08:25

平臺(tái)reactweb

2024-11-25 09:17:23

2022-02-28 10:30:03

架構(gòu)代碼Native
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)