React Native Cache FAQ
キャッシュされる対象Click to copy link
- Android: リモートbuild cacheを介して、Gradleタスクの出力(コンパイル、リソース処理、dex 生成)をキャッシュします。
- iOS: LLVM CAS ベースのキャッシュを介して、Xcodeのコンパイル出力(オブジェクトファイル、モジュールのアーティファクト)をキャッシュします。
- C++ ネイティブモジュール: Bitriseのリモートストレージを利用する
ccacheを介して、コンパイル済みのネイティブブリッジコードとサードパーティのネイティブモジュールをキャッシュします。
キャッシュされない対象Click to copy link
- Metro JS バンドル: JavaScriptのバンドル処理は、この設定の影響を受けません。
node_modules: パッケージのインストール(yarn/npm/pnpm)は、このツールではキャッシュされません。node_modulesをキャッシュする場合は、Bitriseの標準のキャッシュ Step を使用してください。
すべてのコマンドをラップする必要はありますかClick to copy link
ラップが必要なのは、ネイティブビルドをトリガーするコマンドのみです。次のコマンドはラップ不要です。
yarn install/npm install/pnpm installyarn test/npm test(JS のみのテスト)- GradleやXcodeを呼び出さないコマンド
npx react-native run-android、npx react-native run-ios、./gradlew assembleRelease、fastlane buildのようなコマンドや、最終的にxcodebuildまたはGradleを呼び出すスクリプトはラップしてください。
テストは高速化されますかClick to copy link
Build Cacheが短縮するのはコンパイル時間です。テストの Workflow にビルド Step(例: xcode-build-for-test)が含まれている場合は、その Step が高速になります。テスト自体の実行時間は変わりません。
スタンドアロンのGradleやXcodeBuild Cache Step と併用できますかClick to copy link
いいえ。Build Cache for React Native Step は、Gradle、Xcode、C++ のキャッシュを一度に設定します。スタンドアロンの Build Cache for Gradle Step または Build Cache for Xcode Step をすでに使用している場合は、設定の競合を避けるため、この Step に置き換えてください。
特定のバックエンドだけを無効にできますかClick to copy link
はい。アクティベーション Step には、GradleとXcodeの入力があります(どちらもデフォルトはtrueです)。CLIでは、bitrise-build-cache activate react-nativeに--gradle=false、--xcode=false、または--cpp=falseを渡してください。Gradleを無効にすると、Android側の C++/ccacheフローも無効になります。C++ バックエンドは--cppフラグに従います。
ccache の設定を細かく調整できますかClick to copy link
はい。React Nativeのアクティベーションが設定するのは、ccacheがBitriseのリモートストレージを参照するようにするための、次のenvironment variablesのみです。
- CCACHE_BASEDIR
- CCACHE_NOHASHDIR
- CCACHE_REMOTE_ONLY
- CCACHE_REMOTE_STORAGE
- CMAKE_CXX_COMPILER_LAUNCHER
- CMAKE_C_COMPILER_LAUNCHER
それ以外の設定(ccache.confを含む)は、自由にカスタマイズできます。上記の環境変数は、設定ファイルから読み込まれる同じパラメーターよりも優先されるので注意してください。
問題をトラブルシューティングするにはClick to copy link
- Activate Step の Verbose logging 入力を設定するか、CLIに
--debugを渡して、詳細ログを有効にします。キャッシュ設定とバックグラウンドのストレージヘルパーに関する追加の詳細がログに出力されます。 - アクティベーション Step が、ビルドコマンドと同じ環境で実行されたことを確認してください(Bitrise CI以外では同じコンテナー/シェル)。
- ネイティブビルドコマンドが
bitrise-build-cache react-native runでラップされていることを確認してください。 - build detailsページの Build Cache タブで、ラップした呼び出しが登録されたかどうかを確認してください。
- iOS の場合は、スタックが Xcode 26 or later を使用していることを確認してください。
公式のBitrise stepでアプリをビルドしています。ラッパーは引き続き必要ですかClick to copy link
いいえ。Gradle Runner、Android Build、Xcode Archive のlatest versionを使用している場合、ラップは Step 自体が処理します。これらの Step が最新であることだけ確認してください。ビルドを実行する別の公式Bitrise stepを使用している場合は、サポートを追加できるよう、お知らせください。