メインコンテンツまでスキップ

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 install
  • yarn 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を使用している場合は、サポートを追加できるよう、お知らせください。