コンテンツにスキップ

Delta更新

Capgo’s Live Update system can deliver updates faster and more efficiently by only sending the changed files, rather than the entire JS bundle.

アプリケーションが大きなアセットを持っており、まれに変更される場合、例えば画像や動画の場合、圧縮されたJSファイルと比較して、ダウンロードされるのは一度だけです。

デルタ(マニフェスト)更新のしくみ

Capgoでデルタ(マニフェスト)アップデートは、Capgo プラグインがインストールされているアプリで管理されます。アプリの新しいバージョンを Capgo でアップロードする際に、Capgo は以下のことを行います: --delta flag, Capgo does the following:

  1. 各ファイルのチェックサムが生成される
  2. 新しいJSONマニフェストが作成され、ファイルとチェックサムがリストされる
  3. このマニフェストは__CAPGO_KEEP_0__データベースにアップロードされる
  4. アプリを実行しているデバイスがアップデートをチェックする際、Capgo プラグインはサーバーから新しいマニフェストを受け取ります。プラグインは現在持っているマニフェストと比較し、チェックサムとファイルパスを基に変更されたファイルを特定します。

When a device running your app checks for an update, the Capgo plugin receives the new manifest from the server. It compares this manifest to the one it currently has, identifying which files have changed based on the checksums and file paths.

マニフェスト

Delta (マニフェスト)更新を有効にする

「Delta (マニフェスト)更新を有効にする」セクション

Capgo アプリのために、Delta (マニフェスト)更新を有効にするには、単に --delta 新しいバージョンをアップロードするときに

フラグを使用してください:
npx @capgo/cli@latest bundle upload --delta

コピー autoUpdate もし"atInstall", "onLaunch""always"のいずれか ( capacitor.config, the CLI detects it. In non-interactive environments it sends Delta (manifest) updates automatically, and in interactive environments it prompts you to confirm before uploading. Legacy directUpdate ) に設定されている場合、__CAPGO_KEEP_0__ はそれを検出します。非対話型環境では、Delta (マニフェスト)更新を自動的に送信し、対話型環境ではアップロードする前に確認を求めます。LEGACY --no-delta 強制的にフルバンドルアップロードを実行します。

デルタ(マニフェスト)アップデートを強制する

「デルタ(マニフェスト)アップデートを強制する」セクション

すべてのアップロードがデルタ(マニフェスト)アップデートであることを保証し、誤ってフルバンドルアップロードが行われないようにするには、 --delta-only フラグ:

ターミナル画面
npx @capgo/cli@latest bundle upload --delta-only

「」が使用されると、__CAPGO_KEEP_0__は個々のファイルのみをアップロードし、マニフェストを生成します。デルタ(マニフェスト)アップデートをサポートしていないデバイスはアップデートをダウンロードできません。 --delta-only is used, Capgo will only upload individual files and generate a manifest. Any device that does not support Delta (manifest) updates will not be able to download the update.

常にデルタ(マニフェスト)アップデートを使用し、フルバンドルアップロードを許可しない場合 --delta-only 「」が使用されると、__CAPGO_KEEP_0__は個々のファイルのみをアップロードし、マニフェストを生成します。デルタ(マニフェスト)アップデートをサポートしていないデバイスはアップデートをダウンロードできません。

  • 「」を使用する場合
  • CI/CD_PIPELINEを設定し、すべての自動アップロードがDelta(マニフェスト)であることを確認したい
  • アプリケーションが大きく帯域幅が制限されているため、アップロード/ダウンロードサイズを最小限に抑えたい

Delta(マニフェスト)アップロードが必要な場合 --delta-only がセットされている場合、単にアップロードコマンドを実行するだけです。 --delta-onlyこれは、必要な場合にのみ完全なバンドルをプッシュできるように、設定をオーバーライドするためです。

Delta(マニフェスト)アップデートが機能しないように見えます(i.e. 小さな変更でも常にフルJSバンドルをダウンロードしている場合)、

  • 次のことを確認してください: --delta CI/CD_PIPELINEを設定し、すべての自動アップロードがDelta(マニフェスト)であることを確認したい
  • CI/CD_PIPELINEフラグを、毎回新しいバージョンをアップロードするたびに使用している --delta-onlyCloudflareを使用している場合、Cloudflareの設定を確認してください --delta
  • Capgo プラグインの最新バージョンを実行しているデバイス
  • Capgo サーバーに接続できる安定したネットワーク接続を持つデバイス

Capgo ウェブアプリを使用して、最後にアップロードした詳細を確認することもできます。

  1. ウェブアプリに移動 ウェブアプリ
  2. アプリをクリック
  3. 統計バーのバンドル数をクリック
  4. 最後のバンドルを選択
  5. 詳細 Partial フィールド バンドルタイプ

問題が続きます場合は、Capgo サポートに連絡してください。サーバーログを確認して、Delta (マニフェスト) のアップロードが正しく処理されているか、デバイスが更新されたマニフェストを受信しているかを確認できます。

That’s it! The --delta Capgo には、個々のファイルのアップロードとマニフェストの生成が必要なDelta (マニフェスト) の更新用のフラグがあります。

注目点は、Delta (マニフェスト) のアップデートを実行したい場合には、 --delta を指定する必要があります。指定しない場合は、Capgo は、すべてのJSバンドルを単一のファイルとしてアップロードし、デバイスは変更された部分が少ない場合でも、全体のバンドルをダウンロードします。