React Native 0.58.4 アップデート
アップデート手順
1: react-native-git-upgrade
react-native-git-upgradeコマンド実行でエラー
.babelrcをreact-native-git-upgradeコマンド実行時のみファイル名を変更することで回避できる。
情報元: https://github.com/facebook/react-native/issues/21241
2月7日の時点ではReact Native 0.58.4, React 16.6.3に更新される。
3: 手動で調節
react-domとreact-test-rendererを16.6.3に
react-test-rendererとreact-domはreactにあわせてバージョンアップされている。
react-native-git-upgradeコマンドによってreactのバージョンをあげた際には常に他2つもバージョンをあわせててあげている。
react-native-modalbox は1.7.1に
0.58.xでBackAndroidがなくなったことによる修正を1.7.0で行っている。
問題: https://github.com/dooboolab/talktalk-rn/pull/13
修正: https://github.com/maxs15/react-native-modalbox/pull/262
4: npmモジュールの取得
コマンド "npm cache clean --force" でキャッシュを削除した上でコマンド "yarn" を実行。
※ yarnが古くないことを事前に確認してからyarnした方が良い。
現在の安定バージョンは1.3.0
5: コンフリクト解消
iOS
App.xcodeproj/project.pbxproj
JavaScriptCore.frameworkがところどころ加わって既存のファイルとコンフリクトを起こしているので両方残す形で修正
Android
android/app/src/main/AndroidManifest.xml
少し差分が出るが実質
android:roundIcon="@mipmap/ic_launcher_round"
の項目が増えただけ。
Jest
RCTSafeAreaViewとTextのDOMツリーに変化がある。
実行は問題ないのでスナップショットを更新して終了。
RCTSafeAreaView
"emulateUnlessSupported={true}" が追加されている
Text
ellipsizeModeをしている箇所に "truncateLocation="smart"" が追加されている
Flow
flowのバージョンが "^0.86.0" にあがったのでpackage.jsonのflow-binのバージョンも^0.86.0にあげる
**アーカイブビルド
iOS
Xcode10でアーカイブビルドが失敗します。
新しいビルドシステムはまだ問題がおおいですね。
Podfileに3行記述を追加するだけで解決できます。
修正: https://github.com/facebook/react-native/issues/21583
最後に
ここから先、根拠のない情報で申し訳ないのですが誰かの参考になればと思い念のため紹介します。
iOSでアプリの起動が失敗する。
具体的にはビルドフェーズは成功し、パッケージャーもエラーはないのにシミュレーターが起動後スプラッシュスクリーンから進まないという状況になる。
私の場合下記手順でアプリが無事にスプラッシュスクリーンより先に進む。
1: Workspace SttingsからPer-User Workspace SettingのBuild Systemを一回 "Legacy Build System" にした上でビルド。
2: 下記エラーが出力され確実にビルドが失敗する。
3: 再度Workspace Sttingsを開いてPer-User Workspace SettingのBuild Systemを "New Build System" に変更してビルド。