React ネイティブキャッシュよくある質問
正確にキャッシュされるのは何ですか?
-
アンドロイド: リモートビルドキャッシュ経由の Gradle タスク出力 (コンパイル、リソース処理、dex 生成)。
-
iOS: LLVM CAS ベースのキャッシュによる Xcode コンパイル出力 (オブジェクトファイル、モジュールアーティファクト)。
-
C++ ネイティブモジュール: ネイティブ・ブリッジ・コードとサード・パーティー・ネイティブ・モジュールを経由してコンパイル
ccache、Bitriseのリモートストレージに支えられています。
キャッシュされないもの
-
メトロ JS バンドル — JavaScript バンドルのステップはこの設定の影響を受けません。
-
node_modules— パッケージインストール (yarn/npm/pnpm) はこのツールではキャッシュされません。キャッシュしたい場合はBitriseの標準キャッシュ手順を使用してくださいnode_modules。
すべてのコマンドをラップする必要がありますか?
トリガーされたコマンドのみをラップする ネイティブビルド。ラップする必要はありません:
-
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 またはグラドル。
これでテストがスピードアップしますか?
ビルド・キャッシュが減少 コンパイル 時間。テストワークフローにビルドステップが含まれている場合 (例 xcode-build-for-test)、そのステップの方が速くなります。実際のテスト実行時間は影響を受けません。
これをスタンドアロンのGradleまたはXcodeビルドキャッシュステップと一緒に使用できますか?
いいえ — リアクトネイティブ用ビルドキャッシュ ステップでは、Gradle、Xcode、C++ のキャッシュを一度に設定できます。すでにスタンドアロンを使用している場合 Gradle 用キャッシュをビルド または Xcode のキャッシュをビルド 手順 1. 構成の競合を避けるため、このステップに置き換えてください。
バックエンドの 1 つを選択的に無効にすることはできますか?
はい。アクティベーションステップでは Gradle と Xcode の入力が公開されます (どちらもデフォルトは true)。CLI で次のように渡します --gradle=false、 --xcode=false、または --cpp=false へ bitrise-build-cache activate react-native。Gradle を無効にすると C++/
も無効になりますccache Android 側のフロー。C++ バックエンドは以下のようになります。 --cpp フラグ。
それでもキャッシュの設定を微調整できますか?
はい — React Native アクティベーションでは、以下の環境変数のみがポイントに設定されます。 ccache Bitrise のリモートストレージで:
-
CCACHE_BASEDIR -
CCACHE_NOHASHDIR -
CCACHE_REMOTE_ONLY -
CCACHE_REMOTE_STORAGE -
CMAKE_CXX_COMPILER_LAUNCHER -
CMAKE_C_COMPILER_LAUNCHER
その他—あなたを含む ccache.conf — カスタマイズはあなた次第です。上記の env 変数は設定ファイルからの同じパラメータを上書きすることに注意してください
問題のトラブルシューティング方法を教えてください。
-
詳細ログを有効にするには、以下を設定します。 詳細ロギング Activate ステップ (またはパス) での入力
--debugCLI へ)。これにより、キャッシュ設定とバックグラウンドストレージヘルパーに関する追加の詳細が記録されます -
アクティベーションステップがで実行されたことを確認します 同じ環境 ビルドコマンドと同じ (Bitrise CI 以外でも同じコンテナ/シェル)
-
ネイティブビルドコマンドが次のコードでラップされていることを確認する
bitrise-build-cache react-native run。 -
をチェック ビルドキャッシュ ビルド詳細ページのタブをクリックして、ラップされた呼び出しが登録されているかどうかを確認します。
-
iOS の場合、スタックが使用していることを確認する Xcode 2.6 以降。
Bitriseの公式ステップを使ってアプリをビルドしています。まだラッパーは必要ですか
いいえ。の最新バージョンを使用している場合 グラドルランナー、 アンドロイドビルド、または Xcode アーカイブ、ラッピングはステップ自体によって処理されます。ただし、それらのステップが最新であることを確認してください。ネイティブビルドをトリガーする別の公式Bitriseステップを使用する場合、 お知らせください サポートを追加できるようにしましょう