Expo SDK v33 にアップデートした話
2019年8月1日より、Android アプリが 64bit対応していないとストアにアップロードできなくなってしまうため、Expo SDK 33 にアップデート作業を行いました。
色々つまづいた箇所があったので、備忘録として残しておきます。
※ 絶賛アップデート中なので、随時更新 & 修正していきます。
参考サイト
公式ドキュメント
- https://blog.expo.io/expo-sdk-v33-0-0-is-now-available-52d1c99dfe4c
- https://docs.expo.io/versions/latest/expokit/expokit/#upgrading-expokit
アップデート手順に関しては、基本的に上記の公式ドキュメントの手順に従って進めていくといいと思います。
・公式質問ページ
https://forums.expo.io/c/sdk?order=activity
↑ とりあえずエラーになったらこちらのページで検索して似た事例を探しながらやると効率が良かったです。
世間の人もちょうど作業中みたいで、結構活発に更新されていました。
開発環境
before
- Expo CLI 2.6.14 environment info:
- System:
- OS: macOS High Sierra 10.13.6
- Shell: 3.2.57 - /bin/bash
- Binaries:
- Node: 10.15.0 - ~/.nodebrew/current/bin/node
- npm: 6.9.0 - ~/.nodebrew/current/bin/npm
- IDEs:
- Android Studio: 3.4 AI-183.6156.11.34.5522156
- Xcode: 10.1/10B61 - /usr/bin/xcodebuild
- npmPackages:
- expo: ^30.0.0 => 30.0.1
- react: 16.3.1 => 16.3.1
- react-native: https://github.com/expo/react-native/archive/sdk-30.0.0.tar.gz => 0.55.4
- react-navigation: ^2.17.0 => 2.18.0
- npmGlobalPackages:
- expo-cli: 2.6.14
after
- Expo CLI 2.6.14 environment info:
- System:
- OS: macOS High Sierra 10.13.6
- Shell: 3.2.57 - /bin/bash
- Binaries:
- Node: 10.15.0 - ~/.nodebrew/current/bin/node
- npm: 6.9.0 - ~/.nodebrew/current/bin/npm
- IDEs:
- Android Studio: 3.3 AI-182.5107.16.33.5314842
- Xcode: 10.1/10B61 - /usr/bin/xcodebuild
- npmPackages:
- expo: ^33.0.0 => 33.0.6
- react: 16.8.3 => 16.8.3
- react-native: https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz => 0.59.8
- react-navigation: ^3.11.0 => 3.11.0
- npmGlobalPackages:
- expo-cli: 2.6.14
引っかかった問題
- System:
- OS: macOS High Sierra 10.13.6
- Shell: 3.2.57 - /bin/bash
- Binaries:
- Node: 10.15.0 - ~/.nodebrew/current/bin/node
- npm: 6.9.0 - ~/.nodebrew/current/bin/npm
- IDEs:
- Android Studio: 3.4 AI-183.6156.11.34.5522156
- Xcode: 10.1/10B61 - /usr/bin/xcodebuild
- expo: ^30.0.0 => 30.0.1
- react: 16.3.1 => 16.3.1
- react-native: https://github.com/expo/react-native/archive/sdk-30.0.0.tar.gz => 0.55.4
- react-navigation: ^2.17.0 => 2.18.0
- npmGlobalPackages:
- System:
- OS: macOS High Sierra 10.13.6
- Shell: 3.2.57 - /bin/bash
- Binaries:
- Node: 10.15.0 - ~/.nodebrew/current/bin/node
- npm: 6.9.0 - ~/.nodebrew/current/bin/npm
- IDEs:
- Android Studio: 3.3 AI-182.5107.16.33.5314842
- Xcode: 10.1/10B61 - /usr/bin/xcodebuild
- npmPackages:
- expo: ^33.0.0 => 33.0.6
- react: 16.8.3 => 16.8.3
- react-native: https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz => 0.59.8
- react-navigation: ^3.11.0 => 3.11.0
- npmGlobalPackages:
- expo-cli: 2.6.14
公式手順通りに進めていって、エラーが出てしまったところを記述しています。
iOS 関係
pod install 時に GoogleUtilities が2回インストールされてしまう
解決策:Podfile の use_unimodules! を use_unimodules!(exclude: ['expo-face-detector']) に変更する
https://github.com/unimodules/react-native-unimodules/commit/80712ff82dd161d26bff040eb77af463650c8da9?short_path=04c6e90#diff-04c6e90faac2675aa89e2176d2eec7d8
Xcode ビルド時に ‘FirebaseCore/FIRAnalyticsConfiguration.h’ file not found って怒られる
react-native-firebase のバグだったらしい
→ v5.5.3 にて解消されている
https://github.com/invertase/react-native-firebase/issues/2259
expo publish が通らない
$ expo publish
実行時に、以下のようなエラーが表示されるパターン
[15:46:12] Unable to resolve module `react-native/Libraries/Components/View/ViewStylePropTypes` from `/プロジェクトディレクトリの path /node_modules/react-native-render-html/src/HTMLUtils.js`: Module `react-native/Libraries/Components/View/ViewStylePropTypes` does not exist in the Haste module map
[15:46:12]
[15:46:12] This might be related to https://github.com/facebook/react-native/issues/4968
[15:46:12] To resolve try the following:
[15:46:12] 1. Clear watchman watches: `watchman watch-del-all`.
[15:46:12] 2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.
[15:46:12] 3. Reset Metro Bundler cache: `rm -rf /tmp/metro-bundler-cache-*` or `npm start -- --reset-cache`.
[15:46:12] 4. Remove haste cache: `rm -rf /tmp/haste-map-react-native-packager-*`.
[15:46:12] Unable to resolve "react-native/Libraries/Components/View/ViewStylePropTypes" from "node_modules/react-native-render-html/src/HTMLUtils.js"
[15:46:12] Failed building JavaScript bundle.
[15:46:12] Cannot read property 'status' of undefined
→ react-native-render-html のバージョンが古かったせい
最新のバージョンへ更新したら解決しました
expo publish、expo start が通らない
以下のようなエラーが表示されるパターン
[17:07:24] - /プロジェクトディレクトリの path /assets/**
[17:07:24] Cannot read property 'forEach' of undefined
[17:07:24] Set EXPO_DEBUG=true in your env to view the stack trace.
→ app.js の以下の部分が原因
"assetBundlePatterns": [
"assets/**"
]
assets/* に変更
https://github.com/expo/expo-cli/issues/179
Author And Source
この問題について(Expo SDK v33 にアップデートした話), 我々は、より多くの情報をここで見つけました https://qiita.com/nwatabou/items/019a2acd1523a7a0077a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .