コンテンツへスキップ

アップデートタイプ

Capgoは、いくつかのタイプのOTA(Over-The-Air)アップデートをサポートしています。このページでは、アプリに適した組み合わせを選択できるように、それらすべてをリストアップして説明します。

アップデートがダウンロードされた後、いつ適用されるかを制御します。

タイプ説明ユースケース
デフォルトバックグラウンドでダウンロードし、ユーザーがアプリをバックグラウンドに移行または終了したときに適用ほとんどのアプリ;最小限の中断
directUpdate: atInstall新規インストールまたはアプリストアアップデート時のみ即座に適用新規ユーザーは最新版を取得;既存ユーザーはデフォルトフローを使用
directUpdate: onLaunchインストール、ストアアップデート、またはアプリ終了後に即座に適用最新性とセッション安定性のバランス
directUpdate: alwaysアップデートがダウンロードされたときは常に即座に適用(再開時を含む)重要な修正、シンプルな状態を持つアプリ

capacitor.config.tsで設定:

plugins: {
CapacitorUpdater: {
directUpdate: false, // default
// or: 'atInstall' | 'onLaunch' | 'always'
}
}

アップデートがインストールされる前に満たされる必要がある条件。setMultiDelayを使用してそれらを組み合わせます(すべての条件が満たされる必要があります)。

条件説明
date特定の日時まで待機サーバー側のリリースと調整
backgroundアプリがバックグラウンドに移行してから最小期間(ミリ秒)待機素早いアプリ切り替え中の適用を回避
nativeVersion最小ネイティブバイナリバージョンを要求互換性のないネイティブコードでのアップデートをブロック
kill次のアプリ終了イベントまで待機完全な再起動時のみ適用
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({
delayConditions: [
{ kind: 'date', value: '2023-06-01T00:00:00.000Z' },
{ kind: 'background', value: '60000' },
],
});

バージョンブロック(チャネルポリシー)

Section titled “バージョンブロック(チャネルポリシー)”

チャネルが自動配信するsemverアップデートを制御します。チャネルで--disable-auto-updateを使用して設定します。

戦略ブロック許可ユースケース
noneなしすべてのアップデートデフォルト;完全な自動アップデート
major0.0.0 → 1.0.0同じメジャー(例:1.x → 1.y)破壊的変更が古いネイティブに到達するのを防ぐ
minor0.0.0 → 1.1.0、1.1.0 → 1.2.0同じマイナー(例:1.2.x → 1.2.y)メジャー内でのより厳格な制御
patchパッチバンプ以外のすべての変更0.0.311 → 0.0.314のみ非常に厳格;パッチのみのアップデート
metadatamin_update_versionのないアップデート明示的な互換性メタデータを持つアップデートバンドルごとのカスタム互換性ルール
Terminal window
npx @capgo/cli channel set production --disable-auto-update major

バンドルがデバイスに転送される方法。

タイプ説明使用するタイミング
フルバンドルJSバンドル全体がダウンロードされる初回インストール、大きな変更、またはデルタが利用できない場合
デルタ(マニフェスト)変更されたファイルのみがダウンロードされるほとんどのアップデート;高速で帯域幅に優しい
Terminal window
# フルバンドル(デフォルト)
npx @capgo/cli bundle upload --channel production
# デルタアップデート
npx @capgo/cli bundle upload --channel production --delta
カテゴリタイプ
適用タイミングデフォルト、atInstallonLaunchalways
遅延条件datebackgroundnativeVersionkill
バージョンブロックnonemajorminorpatchmetadata
配信フルバンドル、デルタ(マニフェスト)