ソースからのビルド方法
新機能/バグ修正に取り組む場合、まだリリースされていない最新機能を試す場合、またはコアにマージできないパッチを含む独自のフォークを維持する場合、React Nativeをソースからビルドする必要があります。
Android
前提条件
ソースからビルドするには、Android SDKがインストールされている必要があります。開発環境のセットアップガイドに従った場合は、既に設定済みです。
Android SDKはソースからのビルドに必要なものを**自動的にダウンロード**するため、特定のバージョンのNDKやCMakeなどの他のツールをインストールする必要はありません。
プロジェクトをナイトリー版にポイントする
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"))
+ }
+ }
追加の注意事項
ソースからのビルドには、特に最初のビルドでは、約200 MBのアーティファクトをダウンロードしてネイティブコードをコンパイルする必要があるため、時間がかかる場合があります。
リポジトリから`react-native`バージョンを更新するたびに、ビルドディレクトリが削除され、すべてのファイルが再ダウンロードされる場合があります。これを回避するには、`~/.gradle/init.gradle`ファイルを編集してビルドディレクトリのパスを変更することをお勧めします。
gradle.projectsLoaded {
rootProject.allprojects {
buildDir = "/path/to/build/directory/${rootProject.name}/${project.name}"
}
}
理論的根拠
React Nativeを使用する場合の推奨されるアプローチは、常に最新バージョンに更新することです。古いバージョンに対するサポートは、サポートポリシーに記載されています。
ソースからのビルドのアプローチは、React Nativeにプルリクエストを送信する前に修正をエンドツーエンドでテストするために使用されるべきであり、長期的な使用は推奨していません。特に、React Nativeをフォークしたり、セットアップを常にソースからのビルドを使用するように切り替えたりすると、プロジェクトの更新が難しくなり、一般的に開発エクスペリエンスが悪くなります。