メインコンテンツにスキップ

React Native 0.66 リリースのお知らせ

·4 分で読めます
Luna Wei
Luna Wei
Metaのソフトウェアエンジニア

本日、Android 12とiOS 15のサポートに加えて、修正と一般的なアップデートを含むReact Native v0.66をリリースします。

ハイライト

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をご覧ください。

ナイトリーリリースと「コミットリー」リリース

最近のブログ記事で、2021年後半の目標の1つは、リリースプロセスをより迅速かつ安定したものにすることであると述べました。この取り組みの一環として、メインブランチのReact Nativeをより安定させ、リリース候補プロセス中に特定されるバグを減らすよう努めています。

1年以上前からReact Nativeのナイトリーリリースを公開してきましたが、これらのリリースはほとんどのプロジェクトで効果的に使用されていませんでした。現在、これらのリリースはよりアクセスしやすくなっており、今後リリース候補として使用したいと考えています。ナイトリーリリースはnpmの「nightly」タグで公開されています。

個々のコミットのテストプロセスを改善するために、React NativeのCIは、メインブランチとリリースブランチの各コミット、および各PRのtarballアーティファクトを作成するようになりました。私たちはこれらをコミットリーと呼んでいます。これらのコミットリーはnpmに公開されませんが、CircleCIから直接ダウンロードできます。以下の手順をご覧ください。

PRのマージを支援したいですか?関連するコミットリーを試して変更を確認することで、変更をマージするために貴重なシグナルを提供することになります!

ナイトリーリリース(ナイトリー)の使用

React Nativeのナイトリーリリースにプロジェクトを移行するプロセスは、通常のバージョンにアップグレードする場合と非常によく似ています。ただし、アップグレードヘルパーなどのツールは現在ナイトリーでは機能しません。そのため、まだ行っていない場合は、まずプロジェクトを最新の安定版リリースにアップグレードすることをお勧めします。次に、yarn upgrade react-native@nightly を実行して最新のナイトリーリリースをインストールします。ナイトリーリリースでプロジェクトが正常に動作するには、追加の変更が必要になる場合があります。

Commitlyリリース(Commitlies)の使用

Screenshot of CircleCI artifact panel to find tarball

コミットに関連する "build_npm_package-1" ジョブを見つけ、"Artifacts" パネルに移動して、commitly の tarball をダウンロードします。

ナイトリーリリースと同様に、まずプロジェクトが最新の安定バージョンにアップグレードされていることを確認してください。次に、Circle CI の react-native ダッシュボード にアクセスし、問題のコミットによってトリガーされたワークフローを探します。そこに、build_npm_package という名前のジョブが表示されます。そのジョブには、tarball ファイルをダウンロードするために使用できるリンクを提供する「Artifacts」パネルがあります。その後、以下を実行できます。

# 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件のコミット**が含まれています!新規および既存のすべてのコントリビューターに感謝します!完全な変更ログはこちらにあります。

また、このリリースの準備、テスト、およびブロック解除を支援してくれた以下のコントリビューターに感謝します!