jquery

2022年5月9日 星期一

expo , react native SDK 42升到44, 並使用 eas build

 使用expo react native 開發的人, 最近會碰到ios SDK版本太舊無法更新app的問題

必須使用更新版的SDK去編才可以, 

加上expo官方將在2023年停止expo服務, 全面改用EAS, 就花了點時間來一口氣更新吧

EAS Build 和expo build其實本質上是一樣的東西,但EAS 似乎可以編更快, 檔案更小

只要額外裝一下eas-cli 即可使用,   

以下是個人筆記36, 37條的記錄

36.  從sdk42升級到44

    $ expo upgrade sdk 44

    之後選擇44版    

    升級完之後會出現如下錯誤

    Unable to resolve module react-native-safe-area-context from /var/www/html/react_native/myword/node_modules/@react-navigation/bottom-tabs/src/views/BottomTabBar.tsx: react-native-safe-area-context could not be found within the project or in these directories:                                                                 

  node_modules

  ../node_modules

  這是因為bottom-tabs使用safeareaView的關係, 但safeAreaView己經從react-native移到react-native-safe-area-context裡了, 


 所以為了安全起見,   把程式碼裡的safeAreaView全部改成view ,但如果堅持要使用的話, 可以安裝完react-native-safe-area-context後再重新import (因為import來源已經不一樣),我的做法是直接捨棄不用,因為safeAreaView也只有在IOS有效, 我個人是寫雙平台, 趁這個機會整個改掉

  接著

  $ expo install  react-native-safe-area-context

  $ npm start --reset-cache

  這樣一來應該就可以成功了, 但如果碰到bottom-tabs有異常的情況,  因為SDK升上去後有可能之前的其它套件版本不能用, 重新安裝bottom-tabs即可(其它套件亦同)  

37. 從expo build換到  eas build

這個是expo官方提的, expo線上編譯只到2023年, 之會全部改成eas build , eas編更快, 編出來的檔案更小

首先, 要先裝eas 這個程式

$npm install -g eas-cli

但這個程式需要node 14版以上, 所以有問題的話可能要先升級node 版本

$ sudo n 14  (升node有好幾種方式的樣子, 還有什麼nvm的, 依自己的環境去google吧)


裝好之後使用指令在專案下面建立eas設定檔

$ eas build:configure

這邊會出現問你的設定檔想要針對哪個平台建立, 我這邊選all



要送出到EAS進行雲端編譯時, 進到專案目錄下打上

$ eas login

之後依據想要編的平台下指令

eas build --platform android

eas build --platform ios

編譯的進度可以在官網的dashboard上看到

https://expo.dev/

沒有留言: