高速アップデート
CapgoのLiveUpdateシステムは、JS bundle全体ではなく、変更されたファイルのみを送信することで、より速く、より効率的にアップデートを提供できます。
これは特に、低速または従量制のネットワーク接続を使用しているユーザーにとって有益です。ダウンロードが必要なデータ量を最小限に抑えることができるためです。
2つ目の利点は、画像や動画のような、めったに変更されない大きなアセットがアプリにある場合、圧縮されたJSファイルと比較して1回だけダウンロードされることです。
差分アップデートの仕組み
Capgoの差分アップデートは、アプリにインストールされているCapgoプラグインによって処理されます。--partial
フラグを使用して新しいバージョンのアプリをアップロードすると、Capgoは以下の処理を行います:
- ビルド内の各ファイルが個別にアップロードされます
- 各ファイルのチェックサムが生成されます
- すべてのファイルとそのチェックサムを列挙した新しいjsonマニフェストが作成されます
- このマニフェストがCapgoデータベースにアップロードされます
アプリを実行しているデバイスがアップデートを確認すると、Capgoプラグインはサーバーから新しいマニフェストを受信します。このマニフェストを現在のものと比較し、チェックサムとファイルパスに基づいて変更されたファイルを特定します。
プラグインは、JS bundle全体ではなく、変更されたファイルのみをダウンロードします。ダウンロードしたファイルと既存の変更されていないファイルを組み合わせて、アプリの新しいバージョンを再構築します。
差分アップデートの有効化
Capgoアプリで差分アップデートを有効にするには、新しいバージョンをアップロードする際に単に--partial
フラグを使用します:
差分アップデートの強制
すべてのアップロードを差分アップデートにし、誤って完全なバンドルがアップロードされることを防ぎたい場合は、--partial-only
フラグを使用できます:
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を使用して、最後のアップロードの詳細を確認することもできます:
- webappに移動
- アプリをクリック
- 統計バーのバンドル数をクリック
- 最後のバンドルを選択
Partial
フィールドを確認
問題が続く場合は、Capgoサポートにお問い合わせください。サーバーログを確認して、パーシャルアップロードが正しく処理され、デバイスが更新されたマニフェストを受信していることを確認できます。
以上です!--partial
フラグは、Capgoに差分アップデートに必要な個別ファイルのアップロードとマニフェスト生成を実行するように指示します。
差分アップデートとして配信したい新しいバージョンをアップロードするたびに--partial
を使用する必要があることに注意してください。フラグを省略すると、Capgoは JS bundle全体を単一ファイルとしてアップロードし、小さな部分のみが変更された場合でも、デバイスは完全なバンドルをダウンロードします。