はじめに
- 自分用備忘録として記載してます。
- 前案件で開発したReactNativeアプリを久々に起動しようとしたらエラーが起きて困ったので試したことを羅列してます。
出てきた画面はこちら。
※ iPhone11 Pro Maxを利用していますが、他のバージョンでも同様のエラーが発生。
その以前に、以下の部分は正常に通っているのを確認しています。
- yarn tsc ->正常終了
- yarn build ->正常終了
- XCodeビルド ->正常終了
- アプリ起動(スプラッシュ表示) ->正常終了
- node_module読み込み ->正常終了
原因:XCode11へのバージョンアップによって旧react-nativeが動かなくなった
→ なので、対応方法としては以下の2パターン。
①react-nativeのバージョンを上げる
②XCode10に戻す
①react-nativeのバージョンを上げる
元のバージョンは 0.57.1
でした。ということで。
1-1.react-nativeのバージョンを 0.59.9
に変更してみる。
参照:https://github.com/facebook/react-native/issues/25154
→ 別のエラーが山のように出てきてXCodeビルドが出来なくなったのでそっ閉じ
1-2.react-nativeのバージョンを最新 0.61
に変更してみる。
→ react-native-sound
や amazon-cognito-identity-js
などの他モジュールで 'React/RCTBridgeModule.h' file not found
エラーが出てXCodeビルドが出来ないため戻す。
1-3.障害箇所だけ直してみる。
参照:https://github.com/facebook/react-native/pull/25146/files#diff-263fc157dfce55895cdc16495b55d190
XCode11対応として、 node_modules/react-native/React/Base/RCTModuleMethod.mm
の l.94
に1行改修が入っています。
react-native自体をバージョンアップしたくない場合はこの1行を手動追加する。
→ 無事立ち上がった!!!!
static BOOL RCTParseUnused(const char **input)
{
return RCTReadString(input, "__attribute__((unused))") ||
// ↓の1行を追加
RCTReadString(input, "__attribute__((__unused__))") ||
RCTReadString(input, "__unused");
}
②XCode10に戻す
参照:https://qiita.com/leo1109/items/0f4c0b343b1515bbc90d
→ 私の場合、元々使っていたバージョンはXCode10.2.1
だったのでこれに戻せばOKの筈。
(ただ、要件としてXCode11が良かったので1-3.障害部分だけ直してみる
で対応しました)
終わりに
今回も先輩や各所参考にさせて頂きました...多謝!
メモ書きですが誰かの助けになれば幸いです。