Skip to content

Update Types

Capgo supports several types of over-the-air (OTA) updates. This page lists and explains all of them so you can choose the right combination for your app.

Controls when an update is applied after it is downloaded.

TypeDescriptionUse Case
DefaultDownload in background, apply when user backgrounds or kills the appMost apps; minimal disruption
directUpdate: atInstallApply immediately only on fresh install or app store updateNew users get latest; existing users use default flow
directUpdate: onLaunchApply immediately on install, store update, or after app killBalance between freshness and session stability
directUpdate: alwaysApply immediately whenever an update is downloaded (including on resume)Critical fixes, apps with simple state

Configure in capacitor.config.ts:

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

Conditions that must be met before an update is installed. Use setMultiDelay to combine them (all conditions must be satisfied).

ConditionDescriptionExample
dateWait until after a specific date/timeCoordinate with server-side release
backgroundWait a minimum duration (ms) after app is backgroundedAvoid applying during quick app switches
nativeVersionRequire a minimum native binary versionBlock updates on incompatible native code
killWait until the next app kill eventApply only on full restart
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({
delayConditions: [
{ kind: 'date', value: '2023-06-01T00:00:00.000Z' },
{ kind: 'background', value: '60000' },
],
});

Controls which semver updates a channel will auto-deliver. Set via --disable-auto-update on channels.

StrategyBlocksAllowsUse Case
noneNothingAll updatesDefault; full auto-update
major0.0.0 → 1.0.0Same major (e.g. 1.x → 1.y)Prevent breaking changes from reaching old native
minor0.0.0 → 1.1.0, 1.1.0 → 1.2.0Same minor (e.g. 1.2.x → 1.2.y)Stricter control within major
patchAny change except patch bumpOnly 0.0.311 → 0.0.314Very strict; patch-only updates
metadataUpdates without min_update_versionUpdates with explicit compatibility metadataCustom compatibility rules per bundle
Terminal window
npx @capgo/cli channel set production --disable-auto-update major

How the bundle is transferred to the device.

TypeDescriptionWhen to Use
Full bundleEntire JS bundle is downloadedFirst install, large changes, or when delta is unavailable
Delta (manifest)Only changed files are downloadedMost updates; faster and bandwidth-friendly
Terminal window
# Full bundle (default)
npx @capgo/cli bundle upload --channel production
# Delta updates
npx @capgo/cli bundle upload --channel production --delta
CategoryTypes
Apply timingDefault, atInstall, onLaunch, always
Delay conditionsdate, background, nativeVersion, kill
Version blockingnone, major, minor, patch, metadata
DeliveryFull bundle, Delta (manifest)