ReactNatve項(xiàng)目的升級(jí)

## 升級(jí)版本:0.59.9 => 0.61.5

react-native有兩種升級(jí)方式,第一種就是使用官方的升級(jí)工具自動(dòng)升級(jí),分別執(zhí)行 `npm install -g react-native-git-upgrade` 和 `react-native-git-upgrade` 進(jìn)行自動(dòng)升級(jí)撒桨,然后解決沖突就可以了玩祟,然而過(guò)來(lái)人都不推薦我使用這種升級(jí)方法孽椰,

最終我采取了手動(dòng)進(jìn)行升級(jí)的方法鹃愤,雖然第三方庫(kù)要一個(gè)一個(gè)升級(jí),但好過(guò)控制臺(tái)拋出一個(gè)又一個(gè)安卓或ios的原生問(wèn)題體驗(yàn)要友好的多如绸,尤其是對(duì)于我這種沒(méi)有接觸過(guò)安卓和ios開(kāi)發(fā)的菜鳥(niǎo)來(lái)說(shuō)嘱朽。

#### 升級(jí)步驟:

1. 新建一個(gè)reactnative0.61.5項(xiàng)目,并運(yùn)行在ios和Android上怔接;

2. 把舊項(xiàng)目的 `package.json` 中的第三方庫(kù)一個(gè)一個(gè)的安裝在新項(xiàng)目中搪泳,安裝一個(gè)運(yùn)行一個(gè),成功一個(gè)就使用git保存一個(gè)扼脐;

**注: 一定要安卓及ios兩個(gè)平臺(tái)都運(yùn)行一下岸军,不然后面出錯(cuò)可能就要回退git以排查錯(cuò)誤是何時(shí)產(chǎn)生的,血與淚教訓(xùn)**

3. 所有第三方庫(kù)都安裝并成功運(yùn)行后瓦侮,就可以把js代碼復(fù)制到新項(xiàng)目文件夾中了艰赞,

然后運(yùn)行看控制臺(tái)輸出的錯(cuò)誤更改就行了,一般都是庫(kù)API變更的錯(cuò)誤脏榆,按照提示或者查找API變更就可以了猖毫;

#### today Extension的遷移

如果項(xiàng)目的小組件是純ios項(xiàng)目台谍,那么新建一個(gè)同名 `today Extension` 項(xiàng)目,然后將原 `today` 項(xiàng)目文件夾內(nèi)的文件粘貼到新建的項(xiàng)目文件夾下是最簡(jiǎn)單的方法须喂,沒(méi)有之一,如果運(yùn)行產(chǎn)生了錯(cuò)誤趁蕊,多半是一些文件的引入問(wèn)題坞生,在 `today Extension` 項(xiàng)目的 `Build Phases` => `Complie Sources` 或者 `Build Phases` => `Link Binary With Libraries`添加相應(yīng)的文件或者庫(kù)即可 。

到此rn的升級(jí)就結(jié)束了掷伙,以下是我安裝第三方庫(kù)時(shí)遇到的部分問(wèn)題記錄:

## 部分三方庫(kù)問(wèn)題記錄

#### react-native-fast-image

安裝 `react-native-fast-image` 后是己,執(zhí)行 `cd ios && pod install && cd ..` 時(shí),Installing libwebp (1.0.3)出現(xiàn)了錯(cuò)誤任柜,說(shuō)安裝libwebp時(shí)失斪浞稀:

```javascript

[!] Error installing libwebp

[!] /usr/bin/git clone https://chromium.googlesource.com/webm/libwebp /var/folders/b0/10b_68z1047902d7pkxmbkcc0000gn/T/d20200204-17461-u7zr2x --template= --single-branch --depth 1 --branch v1.0.3

Cloning into '/var/folders/b0/10b_68z1047902d7pkxmbkcc0000gn/T/d20200204-17461-u7zr2x'...

fatal: unable to access 'https://chromium.googlesource.com/webm/libwebp/': Failed to connect to chromium.googlesource.com port 443: Operation timed out

```

查詢了很多資料沛厨,有兩種解決方法,第一種配置終端的代理摔认,然而對(duì)我沒(méi)有用逆皮,這里就不記錄了,我使用了第二種方法:使用鏡像参袱。

mac系統(tǒng)打開(kāi) `/Users/你的電腦用戶名/.cocoapods/repos/master/Specs/1/9/2/libwebp/1.0.3/libwebp.podspec.json` 电谣,將

```json

"git": "https://chromium.googlesource.com/webm/libwebp"

更改為

"git": "https://github.com/webmproject/libwebp"

```

然后重新 `pod install` 就好了。

#### react-native-splash-screen

配置好 `react-native-splash-screenios` 之后抹蚀,并在 `ios/項(xiàng)目名/Images.xcassets` 下的兩個(gè)文件夾分別配置好桌面圖標(biāo)和啟動(dòng)屏之后剿牺,啟動(dòng)屏并沒(méi)有生效,如果xcode的版本是11环壤,那么打開(kāi)Xcode晒来,點(diǎn)擊 `LaunchScreen.xib` 文件,把右側(cè)的 `Use Launch Screen` 取消選中郑现,然后在 `General` => `App Icons and Launch Images` 選項(xiàng)中潜索,將 `Launch Screen File` 清空,最后在 `Build Settings` => `Copy Bundle Resources` 添加啟動(dòng)屏文件的路徑懂酱;

#### react-native-spring-scrollview

`react-native-spring-scrollview2.0.23` 在reactnative0.6+以上版本會(huì)出現(xiàn)錯(cuò)誤竹习。把 `node_modules/react-native-spring-scrollview/SpringScrollView.js` 中 `TextInputState` 的導(dǎo)入路徑換成

```js

import * as TextInputState from "react-native/Libraries/Components/TextInput/TextInputState";

```

就可以了。

#### react-native-largelist-v3

在rn0.61.5中列牺,如果不指定 `renderHeader` 固定在頭部整陌,安卓真機(jī)和ios模擬器不會(huì)顯示`renderHeader` ,但會(huì)空出空白區(qū)域瞎领,修改 `node_modules/react-native-largelist-v3/LargeList.js` 中函數(shù) `_renderHeader` 的

```js

style={StyleSheet.flatten([header.props.style, { transform, zIndex }])}

//? 修改為:

style={StyleSheet.flatten([header.props.style, { transform: transform.length ? transform: undefined, zIndex }])}

```

就可以了泌辫。

#### 忘了具體那個(gè)庫(kù)了

運(yùn)行在安卓時(shí),控制臺(tái)拋出了 `D8: Cannot fit requested classes in a single dex file (# methods: 66423 > 65536)` 的錯(cuò)誤九默,是說(shuō)方法數(shù)量超出一個(gè)dex文件數(shù)量限制震放,只要在目錄下的app/build.gradle文件中添加 `multiDexEnabled true` 即可。

```

defaultConfig {

? ? ? ? ... ...

? ? ? ? multiDexEnabled true

? ? }

```

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驼修,一起剝皮案震驚了整個(gè)濱河市殿遂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乙各,老刑警劉巖墨礁,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異耳峦,居然都是意外死亡恩静,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)蹲坷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)驶乾,“玉大人邑飒,你說(shuō)我怎么就攤上這事〖独郑” “怎么了幸乒?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)唇牧。 經(jīng)常有香客問(wèn)我罕扎,道長(zhǎng),這世上最難降的妖魔是什么丐重? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任腔召,我火速辦了婚禮,結(jié)果婚禮上扮惦,老公的妹妹穿的比我還像新娘臀蛛。我一直安慰自己,他們只是感情好崖蜜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布浊仆。 她就那樣靜靜地躺著,像睡著了一般豫领。 火紅的嫁衣襯著肌膚如雪抡柿。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天等恐,我揣著相機(jī)與錄音洲劣,去河邊找鬼。 笑死课蔬,一個(gè)胖子當(dāng)著我的面吹牛囱稽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播二跋,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼战惊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了扎即?” 一聲冷哼從身側(cè)響起吞获,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铺遂,沒(méi)想到半個(gè)月后衫哥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體茎刚,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡襟锐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膛锭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粮坞。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚊荣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出莫杈,到底是詐尸還是另有隱情互例,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布筝闹,位于F島的核電站媳叨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏关顷。R本人自食惡果不足惜糊秆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望议双。 院中可真熱鬧痘番,春花似錦、人聲如沸平痰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宗雇。三九已至昂芜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赔蒲,已是汗流浹背说铃。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘹履,地道東北人腻扇。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像砾嫉,于是被迫代替她去往敵國(guó)和親幼苛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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