コンテンツにジャンプ

Δ更新

CapgoのLive Updateシステムは、変更されたファイルのみを送信することで、JSバンドルのすべてを送信するのではなく、更新を高速かつ効率的に提供できます。

特に、遅いまたはメートルネットワーク接続のユーザーにとっては、ダウンロードする必要があるデータの量を最小限に抑えることで、特別に有益です。

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

Δ更新のしくみ

「Δ更新のしくみ」

Delta updates in Capgo are handled by the Capgo plugin installed in your app. When you upload a new version of your app using the --delta フラグ、Capgo は以下を実行します。

  1. 各ファイルのチェックサムが生成されます。
  2. Δファイルのリスト、パス、チェックサムがCapgoのデータベースに保存されます。
  3. deltaファイルのリスト、パス、チェックサムは、Capgoデータベースに保存されます。

Capgo

プラグインは、変更されたファイルのみをダウンロードし、JS バンドルの全体をダウンロードするのではなく、ダウンロードした変更されたファイルと既存の変更されていないファイルを組み合わせて、新しいアプリのバージョンを再構築します。

どのデバイスがデルタを、どのデバイスがフルZIPを受け取るか

「どのデバイスがデルタを、どのデバイスがフルZIPを受け取るか」

アップロードされたバンドルには --delta フルZIPとデルタファイルが含まれています。デフォルトの ZIP + デルタ ダウンロード形式のチャンネルでは、各デバイスはサポートする最適なパッケージをダウンロードします:

  • プラグインバージョンにデルタサポートがあるデバイス(5.10.0+, 6.25.0+, 7.0.35+, または 8+)変更されたデルタファイルのみをダウンロードします。
  • 古いプラグインバージョンにないデバイスは、全体のzipファイルをダウンロードします。
  • アップロードされたバンドル --delta デルタファイルがないため、全体のzipファイルをすべてのデバイスがダウンロードします。

Capgoを有効にすると、まだ古いネイティブビルドと古いプラグインバージョンを実行しているデバイスから全体のzipファイルのダウンロードが見られることがあります。これらは、ユーザーがストアからアプリを更新するまで、時間の経過とともに減少します。

この設定をチャンネルごとに変更できます。 ダウンロード形式 設定

デルタアップデートとバンド幅使用量

「デルタアップデートとバンド幅使用量」

デルタアップデートは、Capgoのバンド幅使用量を下げます。バンド幅は、実際にダウンロードしたファイルのみをカウントするため、デルタでは変更されたファイルのみがカウントされ、全体のバンドルはカウントされません。エッジでキャッシュされているファイルや、ダウンロードが中断されたファイルはカウントされず、ダウンロードが再開されたときはダウンロードした部分が二度カウントされません。詳細は「バンド幅はどのようにカウントされるか?」を参照してください。 バンド幅はどのようにカウントされるか?.

Deltaアップデートの有効化

「Deltaアップデートの有効化」

CapgoアプリのためのDeltaアップデートを有効にするには、簡単に --delta __CAPGO_KEEP_0__の新バージョンをアップロードする際に、

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

もし autoUpdate がインスタント アプリケーションモード ("atInstall", "onLaunch"、または "always") です capacitor.configCLIは非対話型環境では自動的にDeltaアップデートを送信し、対話型環境ではアップロードする前に確認を求めます。 directUpdate を使用して、完全なバンドル アップロードを強制します。 --no-delta バンドル全体のアップロードを強制する。

Δ更新制限

「Δ更新制限」
  • 空ファイル: CLI ログ Ignoring empty file... 空ファイルを除外し、ゼロバイトファイルをΔファイルから除外します。アップロードは失敗せず、空ファイルを追加すると結果のバンドルが変更されます。ゼロバイトファイルを含まないΔバンドルパスを使用してください。
  • パス内のスペース: パス内のスペースが存在すると、Deltaアップロードはファイルのアップロード前に失敗します。スペースを含むファイルまたはディレクトリ名を変更して、Deltaアップデートをアップロードしてください。

Δ更新の強制

「Δ更新の強制」

全てのアップロードがΔ更新であることを確認し、誤ってフルバンドルアップロードを防止したい場合は、 --delta-only ターミナル画面

フラグ:
npx @capgo/cli@latest bundle upload --delta-only

使用される場合 --delta-only は、Capgo がデリタファイルのみをアップロードし、フルZIPを含まないようにします。デリタサポートが無いプラグインバージョンの任意のデバイスはアップデートをダウンロードできません。

使用する場合 --delta-only もし:

  • 常にデリタアップデートを使用し、フルバンドルアップロードを許可しない場合
  • CI/CDパイプラインを設定し、すべての自動アップロードがデリタであることを保証したい場合
  • アプリケーションが大きく帯域幅が制限されているため、アップロード/ダウンロードサイズを最小限に抑えたい場合

フルバンドルアップロードが必要な場合 --delta-only がセットされている場合、単にアップロードコマンドを実行して --delta-onlyを無視することで、必要な場合にフルバンドルをアップロードできます。

トラブルシューティング

Troubleshooting

Deltaの更新が機能しないように見えますか (i.e. 小さな変更でも常にフルJSバンドルをダウンロードしている場合)。

  • Capacitorを使用している場合 --delta Capacitorの各バージョンアップロード時に
  • もし使用 --delta-only、 --delta flag
  • 、5.10.0+, 6.25.0+, 7.0.35+, or 8+)
  • フルZIPのみ デバイスが安定したネットワーク接続を持ち、__CAPGO_KEEP_0__サーバーにアクセスできることを確認してください
  • Your device has a stable network connection and can reach the Capgo servers

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

  1. __CAPGO_KEEP_0__ ウェブアプリ
  2. アプリをクリック
  3. 統計バーのバンドル数をクリック
  4. 最後のバンドルを選択
  5. 行を選択 Delta files 行は Deltaファイルが存在しない バンドルがフルZIPのみでアップロードされた場合に表示されます。 バンドルタイプ

Capgoのサポートに連絡してください。サーバーログを確認して、デバイスがDeltaファイルを受信していることを確認することができます。

Deltal updateの完了です! --delta フラグは、Deltal updateのために必要な個々のdeltaファイルをCapgoにアップロードするように指示します。

注意してください。 --delta Capgoに新しいバージョンをアップロードするたびに、Deltal updateとして配信したい場合には、毎回このフラグを使用する必要があります。フラグを省略すると、Capgoは、すべてのJSバンドルを1つのファイルとしてアップロードし、デバイスは、変更された部分が小さくても、すべてのファイルをダウンロードすることになります。

Deltal updateを使用している場合 Deltal update ライブアップデートの計画に必要なlive updateを配信するには、接続する Deltal updateを計画するためにCapgoを接続するには、Capgo Live Updates for the product workflow in Capgo Live Updates, Overview Live Update 機能 Live Update アップデートの動作 Live Update アップデートの種類 Live Update