コンテンツへスキップ

高速アップデート

CapgoのLiveUpdateシステムは、JS bundle全体ではなく、変更されたファイルのみを送信することで、より速く、より効率的にアップデートを提供できます。

これは特に、低速または従量制のネットワーク接続を使用しているユーザーにとって有益です。ダウンロードが必要なデータ量を最小限に抑えることができるためです。

2つ目の利点は、画像や動画のような、めったに変更されない大きなアセットがアプリにある場合、圧縮されたJSファイルと比較して1回だけダウンロードされることです。

差分アップデートの仕組み

Capgoの差分アップデートは、アプリにインストールされているCapgoプラグインによって処理されます。--partialフラグを使用して新しいバージョンのアプリをアップロードすると、Capgoは以下の処理を行います:

  1. ビルド内の各ファイルが個別にアップロードされます
  2. 各ファイルのチェックサムが生成されます
  3. すべてのファイルとそのチェックサムを列挙した新しいjsonマニフェストが作成されます
  4. このマニフェストがCapgoデータベースにアップロードされます

アプリを実行しているデバイスがアップデートを確認すると、Capgoプラグインはサーバーから新しいマニフェストを受信します。このマニフェストを現在のものと比較し、チェックサムとファイルパスに基づいて変更されたファイルを特定します。

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

差分アップデートの有効化

Capgoアプリで差分アップデートを有効にするには、新しいバージョンをアップロードする際に単に--partialフラグを使用します:

差分アップデートの強制

すべてのアップロードを差分アップデートにし、誤って完全なバンドルがアップロードされることを防ぎたい場合は、--partial-onlyフラグを使用できます:

Terminal window
npx @capgo/cli@latest upload --partial-only

--partial-onlyを使用すると、Capgoは個別のファイルのアップロードとマニフェストの生成のみを行います。パーシャルをサポートしていないデバイスはアップデートをダウンロードできなくなります。

以下のような場合に--partial-onlyの使用を検討することができます:

  • 常に差分アップデートを使用し、完全なバンドルアップロードを許可したくない場合
  • CI/CDパイプラインを設定していて、すべての自動アップロードを差分にしたい場合
  • アプリが大きく、帯域幅が制限されているため、アップロード/ダウンロードサイズを最小限に抑える必要がある場合

--partial-onlyが設定されている状態で完全なバンドルアップロードが必要な場合は、単に--partial-onlyなしでアップロードコマンドを実行します。これにより、その単一のアップロードに対して設定が上書きされ、必要に応じて完全なバンドルをプッシュできます。

トラブルシューティング

差分アップデートが機能していないように見える場合(小さな変更でもデバイスが常に完全なJSバンドルをダウンロードしている場合)、以下を確認してください:

  • 新しいバージョンをアップロードするたびに--partialフラグを使用していること
  • --partial-onlyを使用している場合、--partialフラグを誤って省略していないこと
  • デバイスが最新バージョンのCapgoプラグインを実行していること
  • デバイスが安定したネットワーク接続を持ち、Capgoサーバーに到達できること

Capgo webappを使用して、最後のアップロードの詳細を確認することもできます:

  1. webappに移動
  2. アプリをクリック
  3. 統計バーのバンドル数をクリック
  4. 最後のバンドルを選択
  5. Partialフィールドを確認 bundle type

問題が続く場合は、Capgoサポートにお問い合わせください。サーバーログを確認して、パーシャルアップロードが正しく処理され、デバイスが更新されたマニフェストを受信していることを確認できます。

以上です!--partialフラグは、Capgoに差分アップデートに必要な個別ファイルのアップロードとマニフェスト生成を実行するように指示します。

差分アップデートとして配信したい新しいバージョンをアップロードするたびに--partialを使用する必要があることに注意してください。フラグを省略すると、Capgoは JS bundle全体を単一ファイルとしてアップロードし、小さな部分のみが変更された場合でも、デバイスは完全なバンドルをダウンロードします。