React Native 0.66の発表
本日、Android 12およびiOS 15のサポート、各種修正、一般的なアップデートを含むReact Native v0.66をリリースします。
ハイライト
- Androidで親の境界外にあるビューのタップを処理
- Androidの新しいBluetooth権限
- Apple Silicon、Xcode 13、iOS 15のサポート改善
- Hermes 0.9.0
- Nightlyおよび「Commitly」リリース
Androidで親の境界外にある子ビューのタップを処理
@hsource のおかげで、overflow: visible
を介して親ビューの境界外にレンダリングされた子ビューのインタラクションサポートが追加されました。これは一般的なユースケースであり、Android上のReact NativeがWeb標準により近づくものとなります。
詳細については、プルリクエストをご覧ください。
Androidの新しいBluetooth権限
Android 12に備えて、新しいBluetooth権限のサポートを追加しました。次回のリリースで targetSDKVersion
を31に更新する予定です。
Apple Silicon、Xcode 13、iOS 15のサポート改善
このリリースでは、Apple Silicon (M1) MacマシンでのiOS向けXcodeビルドをより信頼性の高いものにするための多くのソリューションが提供されています。
特に、新しいアプリテンプレートにはCocoaPodsの回避策が含まれています(@mikehardy に感謝します!)。適用するには、アプリのPodfileの post_install
ステップに __apply_Xcode_12_5_M1_post_install_workaround(installer)
が追加されていることを確認してください。
さらに、RCT-Folly.podspec
は arm64のリンカエラーを防ぐために更新されました。
iOS 15およびAndroid 12向けにアプリを準備する方法について共有したこちらの投稿もご覧ください。
Hermes 0.9.0
Hermes 0.9.0は、主にHermesのリリースポイントと今回のReact Nativeリリースの間のギャップを埋めるためのものです。
約400のコミットの中には、一般的なバグ修正に加え、メモリとサイズの改善が含まれています。
詳細はHermes 0.9.0のリリースissueをご覧ください。
Nightlyおよび「Commitly」リリース
最近のブログ記事で、2021年後半の目標の1つが、リリースプロセスをより速く、より安定したものに改善することであると共有しました。この取り組みの一環として、mainブランチでのReact Nativeの安定性を高め、リリース候補(RC)プロセス中に特定されるバグを減らすことに取り組んでいます。
私たちは1年以上にわたってReact Nativeのnightlyリリースを公開してきましたが、これらのリリースはほとんどのプロジェクトで効果的に使用されていませんでした。これらは現在よりアクセスしやすくなっており、今後はリリース候補として活用していきたいと考えています。nightlyリリースはnpmに「nightly」タグで公開されます。
個々のコミットをテストするプロセスを改善するために、React NativeのCIはmainブランチとreleaseブランチの各コミット、および各PRに対してtarballアーティファクトを作成するようになります。これをcommitlyと呼んでいます。これらのcommitlyはnpmには公開されませんが、CircleCIから直接ダウンロードできます。以下の手順を参照してください。
PRのマージを支援したいですか?関連するcommitlyを試して変更を検証することで、その変更をマージするための貴重なシグナルを提供することになります!
Nightlyリリースの使用(Nightlies)
プロジェクトをReact Nativeのnightlyリリースに移行するプロセスは、通常のバージョンにアップグレードする際の手順と非常によく似ていますが、Upgrade Helperのようなツールは現在nightlyでは機能しないという例外があります。その点を考慮し、まだの場合はまずプロジェクトを最新の安定版リリースにアップグレードすることをお勧めします。その後、yarn upgrade react-native@nightly
を実行して最新のnightlyリリースをインストールしてください。nightlyリリースでプロジェクトが正常に動作するためには、追加の変更が必要になる場合があることに注意してください。
Commitlyリリースの使用(Commitlies)

コミットに関連する「build_npm_package-1」ジョブを見つけ、「Artifacts」パネルに進んでcommitlyのtarballをダウンロードしてください。
nightlyリリースと同様に、まずプロジェクトが最新の安定バージョンにアップグレードされていることを確認してください。次に、Circle CIのreact-native
ダッシュボードに移動し、問題のコミットによってトリガーされたワークフローを検索します。そこにbuild_npm_package
という名前のジョブが表示されるはずです。そのジョブには「Artifacts」パネルがあり、tarballファイルをダウンロードするためのリンクが提供されます。その後、以下を実行できます。
# Update your react-native dependency to the tarball
# using your preferred package manager
$ yarn add <path to tarball>
$ npm add <path to tarball>
謝辞
このリリースには、92人のコントリビューターによる621件のコミットが含まれています!新旧すべてのコントリビューターの皆様に感謝します!完全な変更履歴はこちらでご覧いただけます。
また、このリリースの準備、テスト、および問題解決にご協力いただいた以下のコントリビューターの皆様にも感謝いたします!