メインコンテンツへスキップ

アップデートの種類

Capgo は、いくつかの異なる OTA (over-the-air) アップデート方式をサポートしています。このページでは、アプリに最適な組み合わせを選択できるよう、すべての方式を一覧で紹介し、解説します。

コントロール いつ アップデートはダウンロード後に適用されます。プラグインは、アプリがフォアグラウンドに移行した際、およびアプリ起動中に一定の間隔でアップデートを確認します。 periodCheckDelay その間隔を制御します(デフォルトは10分)。

種類説明ユースケース
autoUpdate: atBackgroundフォアグラウンド確認のたびにチェックとダウンロードを行い、アプリがバックグラウンドに移行した際に適用するほとんどのアプリに推奨。ユーザーへの影響を最小限に抑えます
autoUpdate: atInstall新規インストールまたはApp Store経由のNative Build更新時のみ即時適用。それ以外は使用しない atBackground新規ユーザーには最新版を、既存ユーザーにはバックグラウンド適用を利用
autoUpdate: onLaunchコールドスタート時(終了→フォアグラウンド)のみ即時適用し、それ以外は以下にフォールバックします: atBackground最新性とセッションの安定性のバランス
autoUpdate: alwaysフォアグラウンドへの遷移時に毎回チェックし、アップデートがあれば即座に適用します緊急の修正、ステート管理がシンプルなアプリ
autoUpdate: onlyDownload自動的にチェックとダウンロードを行い、以下を通知します: updateAvailable、ただし自動適用は行いません独自のアップデートプロンプトを表示する、または実行タイミングを完全に制御したいアプリ set()

設定方法: capacitor.config.ts:

plugins: {
CapacitorUpdater: {
autoUpdate: 'atBackground', // default; true is still accepted
// or: 'off' | 'atInstall' | 'onLaunch' | 'always' | 'onlyDownload'
}
}

満たす必要がある条件 の前に an update is installed. Use setMultiDelay 組み合わせて使用します(すべての条件を満たす必要があります)。

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

バージョンブロッキング (Channel Policy)

「バージョンブロッキング (Channel Policy)」セクション

以下の項目を制御します: semverアップデート チャンネルが自動配信する対象。以下で設定: --disable-auto-update 各チャンネルにて。

戦略ブロック可能にするユースケース
なしなし任意のターゲット bundle バージョンデフォルト; 完全自動アップデート
メジャー指定したメジャーバージョンより高い version_build、例えば 1.2.3 -> 2.0.0同じメジャーバージョン、例えば 1.2.3 -> 1.9.0 または 1.2.3 -> 1.2.4破壊的な変更が古いネイティブ code に適用されるのを防ぐ
マイナー現在のメジャーまたはマイナーバージョンと異なる version_build, 例えば 1.2.3 -> 1.3.0メジャーとマイナーが同じ、例えば 1.2.3 -> 1.2.4アップデートを単一のネイティブ・マイナーバージョン内に収める
パッチメジャー、マイナー、パッチのいずれかの番号が変更された場合、例えば 1.0.0 -> 1.0.1サフィックスのみが変更され、 MAJOR.MINOR.PATCH は同一のまま、例えば 1.0.0-beta.1 -> 1.0.0-beta.2 または 1.0.0+build.1 -> 1.0.0+build.2最も厳格なモード: コアバージョンの変更を許可しない
メタデータ不足 min_update_version、または version_build その下にある対象となるbundleの min_update_version 以下 version_buildbundleごとのカスタム互換性ルール

これらのチェックでは、送信された Native Build のベースラインと対象の bundle を比較します version_build、現在インストールされているダウンロード済みの bundle ではなく、送信された version_name.

ターミナル
npx @capgo/cli channel set production --disable-auto-update major

どのように bundle が転送されるか デバイスへ。

種類説明利用シーン
フルバンドルJS bundle全体をダウンロード初回インストール、大幅な変更、またはdeltaが利用できない場合
差分変更されたファイルのみをダウンロードほとんどのアップデート。高速で通信量も抑えられます
ターミナル
# Full bundle (default)
npx @capgo/cli bundle upload --channel production
# Delta updates
npx @capgo/cli bundle upload --channel production --delta
カテゴリタイプ
適用タイミングoff, atBackground, atInstall, onLaunch, always, onlyDownload
遅延条件date, background, nativeVersion, kill
バージョンのブロックnone, major, minor, patch, metadata
配信フルバンドル、Delta

使用している場合 アップデートの種類 live update の配信を計画するには、以下と連携させます: Capgo Live Updates Capgo Live Updates のプロダクトワークフロー向けに、 概要 実装の詳細は Overview を 機能 実装の詳細は Features を アップデートの動作 実装の詳細はアップデートの動作を、および スタートガイド 実装の詳細については、Getting Started を参照してください。