ソースからのビルド方法
新しい機能やバグ修正に取り組む場合、まだリリースされていない最新機能を試す場合、またはコアにマージできないパッチを含む独自のフォークを維持したい場合は、React Nativeをソースからビルドする必要があります。
Android
前提条件
ソースからビルドするには、Android SDKがインストールされている必要があります。開発環境のセットアップガイドに従っていれば、すでに設定済みのはずです。
特定のバージョンのNDKやCMakeなどの他のツールをインストールする必要はありません。Android SDKが、ソースからのビルドに必要なものを自動的にダウンロードします。
プロジェクトをナイトリーバージョンに指定する
React Nativeの最新の修正や機能を使用するには、以下のコマンドでプロジェクトをReact Nativeのナイトリーバージョンを使用するように更新できます。
yarn add react-native@nightly
これにより、プロジェクトは、最新の変更で毎晩リリースされるReact Nativeのナイトリーバージョンを使用するように更新されます。
プロジェクトを更新してソースからビルドする
安定版リリースとナイトリー版の両方で、事前にコンパイルされたアーティファクトを使用することになります。代わりに、フレームワークへの変更を直接テストできるように、ソースからのビルドに切り替えたい場合は、android/settings.gradleファイルを次のように編集する必要があります。
// ...
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')
+ includeBuild('../node_modules/react-native') {
+ dependencySubstitution {
+ substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid"))
+ substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid"))
+ substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+ substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+ }
+ }
追加の注意点
ソースからのビルドは、特に最初のビルドでは、約200MBのアーティファクトをダウンロードしてネイティブコードをコンパイルする必要があるため、時間がかかる場合があります。
リポジトリからreact-nativeバージョンを更新するたびに、ビルドディレクトリが削除され、すべてのファイルが再ダウンロードされる可能性があります。これを避けるには、~/.gradle/init.gradleファイルを編集してビルドディレクトリのパスを変更することをお勧めします。
gradle.projectsLoaded {
rootProject.allprojects {
buildDir = "/path/to/build/directory/${rootProject.name}/${project.name}"
}
}
根拠
React Nativeを使用する際の推奨アプローチは、常に最新バージョンに更新することです。古いバージョンに対するサポートは、当社のサポートポリシーで説明されています。
ソースからのビルド方法は、React Nativeにプルリクエストを提出する前に修正をエンドツーエンドでテストするために使用されるべきであり、長期的な使用は推奨していません。特にReact Nativeをフォークしたり、常にソースからのビルドを使用するように設定を切り替えたりすると、更新が難しくなり、一般的に開発者体験が悪くなるプロジェクトになってしまいます。