Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@remnote/capacitor-updater

Cap-go861LGPL-3.0-only4.9.4TypeScript support: included

OTA update for capacitor apps

capacitor, plugin, OTA, manual update, live update, auto update, ionic, appflow alternative, capgo, native

readme

Capacitor updater

Capgo - Instant updates for capacitor Discord Discord npm GitHub latest commit https://good-labs.github.io/greater-good-affirmation/assets/images/badge.svg

Update Ionic Capacitor apps without App/Play Store review (Code-push / hot-code updates).

You have 3 ways possible :

  • Use capgo.app a full featured auto update system in 5 min Setup, to manage version, update, revert and see stats.
  • Use your own server update with auto update system
  • Use manual methods to zip, upload, download, from JS to do it when you want.

Community

Join the discord to get help.

Documentation

I maintain a more user friendly and complete documentation here.

Installation

npm install @capgo/capacitor-updater
npx cap sync

Auto-update setup

Create account in capgo.app and get your API key

  • Login to CLI npx @capgo/cli@latest login API_KEY
  • Add app with CLI npx @capgo/cli@latest add
  • Upload app to channel production npx @capgo/cli@latest upload -c production
  • Set channel production public npx @capgo/cli@latest set -c production -s public
  • Add to your main code

    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    CapacitorUpdater.notifyAppReady()

    This tells Capacitor Updator that the current update bundle has loaded succesfully. Failing to call this method will cause your application to be rolled back to the previously successful version (or built-in bundle).

  • Do npm run build && npx cap copy to copy the build to capacitor.

  • Run the app and see app auto update after each backgrounding.
  • Failed updates will automatically roll back to the last successful version.

See more there in the Auto update documentation.

Manual setup

Download update distribution zipfiles from a custom url. Manually control the entire update process.

  • Edit your capacitor.config.json like below, set autoUpdate to true.
    // capacitor.config.json
    {
      "appId": "**.***.**",
      "appName": "Name",
      "plugins": {
          "CapacitorUpdater": {
              "autoUpdate": false,
          }
      }
    }
  • Add to your main code
    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    CapacitorUpdater.notifyAppReady()
    This informs Capacitor Updator that the current update bundle has loaded succesfully. Failing to call this method will cause your application to be rolled back to the previously successful version (or built-in bundle).
  • Add this to your application.
    const version = await CapacitorUpdater.download({
      url: 'https://github.com/Cap-go/demo-app/releases/download/0.0.4/dist.zip',
    })
    await CapacitorUpdater.set(version); // sets the new version, and reloads the app
  • Failed updates will automatically roll back to the last successful version.
  • Example: Using App-state to control updates, with SplashScreen: You might also consider performing auto-update when application state changes, and using the Splash Screen to improve user experience. `javascript import { CapacitorUpdater, VersionInfo } from '@capgo/capacitor-updater' import { SplashScreen } from '@capacitor/splash-screen' import { App } from '@capacitor/app'

    let version: VersionInfo; App.addListener('appStateChange', async (state) => {

    if (state.isActive) {
      // Ensure download occurs while the app is active, or download may fail
      version = await CapacitorUpdater.download({
        url: 'https://github.com/Cap-go/demo-app/releases/download/0.0.4/dist.zip',
      })
    }
    
    if (!state.isActive && version) {
      // Activate the update when the application is sent to background
      SplashScreen.show()
      try {
        await CapacitorUpdater.set(version);
        // At this point, the new version should be active, and will need to hide the splash screen
      } catch () {
        SplashScreen.hide() // Hide the splash screen again if something went wrong
      }
    }

    })


TIP: If you prefer a secure and automated way to update your app, you can use [capgo.app](https://capgo.app) - a full-featured, auto update system.

### Packaging `dist.zip` update bundles

Capacitor Updator works by unzipping a compiled app bundle to the native device filesystem. Whatever you choose to name the file you upload/download from your release/update server URL (via either manual or automatic updating), this `.zip` bundle must meet the following requirements:

- The zip file should contain the full contents of your production Capacitor build output folder, usually `{project directory}/dist/` or `{project directory}/www/`. This is where `index.html` will be located, and it should also contain all bundled JavaScript, CSS, and web resources necessary for your app to run.
- Do not password encrypt the bundle zip file, or it will fail to unpack.
- Make sure the bundle does not contain any extra hidden files or folders, or it may fail to unpack.

## API

<docgen-index>

* [`notifyAppReady()`](#notifyappready)
* [`download(...)`](#download)
* [`next(...)`](#next)
* [`set(...)`](#set)
* [`delete(...)`](#delete)
* [`list()`](#list)
* [`reset(...)`](#reset)
* [`current()`](#current)
* [`reload()`](#reload)
* [`setMultiDelay(...)`](#setmultidelay)
* [`setDelay(...)`](#setdelay)
* [`cancelDelay()`](#canceldelay)
* [`getLatest()`](#getlatest)
* [`setChannel(...)`](#setchannel)
* [`getChannel()`](#getchannel)
* [`setCustomId(...)`](#setcustomid)
* [`addListener('download', ...)`](#addlistenerdownload)
* [`addListener('noNeedUpdate', ...)`](#addlistenernoneedupdate)
* [`addListener('updateAvailable', ...)`](#addlistenerupdateavailable)
* [`addListener('downloadComplete', ...)`](#addlistenerdownloadcomplete)
* [`addListener('majorAvailable', ...)`](#addlistenermajoravailable)
* [`addListener('updateFailed', ...)`](#addlistenerupdatefailed)
* [`addListener('downloadFailed', ...)`](#addlistenerdownloadfailed)
* [`addListener('appReloaded', ...)`](#addlistenerappreloaded)
* [`getDeviceId()`](#getdeviceid)
* [`getPluginVersion()`](#getpluginversion)
* [`isAutoUpdateEnabled()`](#isautoupdateenabled)
* [`addListener(string, ...)`](#addlistenerstring)
* [`removeAllListeners()`](#removealllisteners)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)

</docgen-index>

<docgen-api>
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->

### notifyAppReady()

```typescript
notifyAppReady() => Promise<BundleInfo>

Notify Capacitor Updater that the current bundle is working (a rollback will occur of this method is not called on every app launch)

Returns: Promise<BundleInfo>


download(...)

download(options: { url: string; version: string; }) => Promise<BundleInfo>

Download a new bundle from the provided URL, it should be a zip file, with files inside or with a unique id inside with all your files

Param Type
options { url: string; version: string; }

Returns: Promise<BundleInfo>


next(...)

next(options: { id: string; }) => Promise<BundleInfo>

Set the next bundle to be used when the app is reloaded.

Param Type
options { id: string; }

Returns: Promise<BundleInfo>


set(...)

set(options: { id: string; }) => Promise<void>

Set the current bundle and immediately reloads the app.

Param Type
options { id: string; }

delete(...)

delete(options: { id: string; }) => Promise<void>

Delete bundle in storage

Param Type
options { id: string; }

list()

list() => Promise<{ bundles: BundleInfo[]; }>

Get all available bundles

Returns: Promise<{ bundles: BundleInfo[]; }>


reset(...)

reset(options?: { toLastSuccessful?: boolean | undefined; } | undefined) => Promise<void>

Set the builtin bundle (the one sent to Apple store / Google play store ) as current bundle

Param Type
options { toLastSuccessful?: boolean; }

current()

current() => Promise<{ bundle: BundleInfo; native: string; }>

Get the current bundle, if none are set it returns builtin, currentNative is the original bundle installed on the device

Returns: Promise<{ bundle: BundleInfo; native: string; }>


reload()

reload() => Promise<void>

Reload the view


setMultiDelay(...)

setMultiDelay(options: { delayConditions: DelayCondition[]; }) => Promise<void>

Set DelayCondition, skip updates until one of the conditions is met

Param Type Description
options { delayConditions: DelayCondition[]; } are the {@link DelayCondition} list to set

Since: 4.3.0


setDelay(...)

setDelay(options: DelayCondition) => Promise<void>

Set DelayCondition, skip updates until the condition is met

Param Type Description
options DelayCondition is the {@link DelayCondition} to set

Since: 4.0.0


cancelDelay()

cancelDelay() => Promise<void>

Cancel delay to updates as usual

Since: 4.0.0


getLatest()

getLatest() => Promise<latestVersion>

Get Latest bundle available from update Url

Returns: Promise<latestVersion>

Since: 4.0.0


setChannel(...)

setChannel(options: SetChannelOptions) => Promise<channelRes>

Set Channel for this device

Param Type Description
options SetChannelOptions is the {@link SetChannelOptions} channel to set

Returns: Promise<channelRes>

Since: 4.7.0


getChannel()

getChannel() => Promise<getChannelRes>

get Channel for this device

Returns: Promise<getChannelRes>

Since: 4.8.0


setCustomId(...)

setCustomId(options: SetCustomIdOptions) => Promise<void>

Set Channel for this device

Param Type Description
options SetCustomIdOptions is the {@link SetCustomIdOptions} customId to set

Since: 4.9.0


addListener('download', ...)

addListener(eventName: 'download', listenerFunc: DownloadChangeListener) => Promise<PluginListenerHandle> & PluginListenerHandle

Listen for download event in the App, let you know when the download is started, loading and finished

Param Type
eventName 'download'
listenerFunc DownloadChangeListener

Returns: Promise<PluginListenerHandle> & PluginListenerHandle

Since: 2.0.11


addListener('noNeedUpdate', ...)

addListener(eventName: 'noNeedUpdate', listenerFunc: NoNeedListener) => Promise<PluginListenerHandle> & PluginListenerHandle

Listen for no need to update event, usefull when you want force check every time the app is launched

Param Type
eventName 'noNeedUpdate'
listenerFunc NoNeedListener

Returns: Promise<PluginListenerHandle> & PluginListenerHandle

Since: 4.0.0


addListener('updateAvailable', ...)

addListener(eventName: 'updateAvailable', listenerFunc: UpdateAvailabledListener) => Promise<PluginListenerHandle> & PluginListenerHandle

Listen for availbale update event, usefull when you want to force check every time the app is launched

Param Type
eventName 'updateAvailable'
listenerFunc UpdateAvailabledListener

Returns: Promise<PluginListenerHandle> & PluginListenerHandle

Since: 4.0.0


addListener('downloadComplete', ...)

addListener(eventName: 'downloadComplete', listenerFunc: DownloadCompleteListener) => Promise<PluginListenerHandle> & PluginListenerHandle

Listen for download event in the App, let you know when the download is started, loading and finished

Param Type
eventName 'downloadComplete'
listenerFunc DownloadCompleteListener

Returns: Promise<PluginListenerHandle> & PluginListenerHandle

Since: 4.0.0


addListener('majorAvailable', ...)

addListener(eventName: 'majorAvailable', listenerFunc: MajorAvailableListener) => Promise<PluginListenerHandle> & PluginListenerHandle

Listen for Major update event in the App, let you know when major update is blocked by setting disableAutoUpdateBreaking

Param Type
eventName 'majorAvailable'
listenerFunc MajorAvailableListener

Returns: Promise<PluginListenerHandle> & PluginListenerHandle

Since: 2.3.0


addListener('updateFailed', ...)

addListener(eventName: 'updateFailed', listenerFunc: UpdateFailedListener) => Promise<PluginListenerHandle> & PluginListenerHandle

Listen for update fail event in the App, let you know when update has fail to install at next app start

Param Type
eventName 'updateFailed'
listenerFunc UpdateFailedListener

Returns: Promise<PluginListenerHandle> & PluginListenerHandle

Since: 2.3.0


addListener('downloadFailed', ...)

addListener(eventName: 'downloadFailed', listenerFunc: DownloadFailedListener) => Promise<PluginListenerHandle> & PluginListenerHandle

Listen for download fail event in the App, let you know when download has fail finished

Param Type
eventName 'downloadFailed'
listenerFunc DownloadFailedListener

Returns: Promise<PluginListenerHandle> & PluginListenerHandle

Since: 4.0.0


addListener('appReloaded', ...)

addListener(eventName: 'appReloaded', listenerFunc: AppReloadedListener) => Promise<PluginListenerHandle> & PluginListenerHandle

Listen for download fail event in the App, let you know when download has fail finished

Param Type
eventName 'appReloaded'
listenerFunc AppReloadedListener

Returns: Promise<PluginListenerHandle> & PluginListenerHandle

Since: 4.3.0


getDeviceId()

getDeviceId() => Promise<{ deviceId: string; }>

Get unique ID used to identify device (sent to auto update server)

Returns: Promise<{ deviceId: string; }>


getPluginVersion()

getPluginVersion() => Promise<{ version: string; }>

Get the native Capacitor Updater plugin version (sent to auto update server)

Returns: Promise<{ version: string; }>


isAutoUpdateEnabled()

isAutoUpdateEnabled() => Promise<{ enabled: boolean; }>

Get the state of auto update config. This will return false in manual mode.

Returns: Promise<{ enabled: boolean; }>


addListener(string, ...)

addListener(eventName: string, listenerFunc: (...args: any[]) => any) => Promise<PluginListenerHandle>
Param Type
eventName string
listenerFunc (...args: any[]) => any

Returns: Promise<PluginListenerHandle>


removeAllListeners()

removeAllListeners() => Promise<void>

Interfaces

BundleInfo

Prop Type
id string
version string
downloaded string
checksum string
status BundleStatus

DelayCondition

Prop Type Description
kind DelayUntilNext Set up delay conditions in setMultiDelay
value string

latestVersion

Prop Type Description Since
version string Res of getLatest method 4.0.0
major boolean |
message string |
old string |
url string

channelRes

Prop Type Description Since
status string Current status of set channel 4.7.0
error any

SetChannelOptions

Prop Type
channel string

getChannelRes

Prop Type Description Since
channel string Current status of get channel 4.8.0
error any |
status string |
allowSet boolean

SetCustomIdOptions

Prop Type
customId string

PluginListenerHandle

Prop Type
remove () => Promise<void>

DownloadEvent

Prop Type Description Since
percent number Current status of download, between 0 and 100. 4.0.0
bundle BundleInfo

noNeedEvent

Prop Type Description Since
bundle BundleInfo Current status of download, between 0 and 100. 4.0.0

updateAvailableEvent

Prop Type Description Since
bundle BundleInfo Current status of download, between 0 and 100. 4.0.0

DownloadCompleteEvent

Prop Type Description Since
bundle BundleInfo Emit when a new update is available. 4.0.0

MajorAvailableEvent

Prop Type Description Since
version string Emit when a new major bundle is available. 4.0.0

UpdateFailedEvent

Prop Type Description Since
bundle BundleInfo Emit when a update failed to install. 4.0.0

DownloadFailedEvent

Prop Type Description Since
version string Emit when a download fail. 4.0.0

Type Aliases

BundleStatus

'success' | 'error' | 'pending' | 'downloading'

DelayUntilNext

'background' | 'kill' | 'nativeVersion' | 'date'

DownloadChangeListener

(state: DownloadEvent): void

NoNeedListener

(state: noNeedEvent): void

UpdateAvailabledListener

(state: updateAvailableEvent): void

DownloadCompleteListener

(state: DownloadCompleteEvent): void

MajorAvailableListener

(state: MajorAvailableEvent): void

UpdateFailedListener

(state: UpdateFailedEvent): void

DownloadFailedListener

(state: DownloadFailedEvent): void

AppReloadedListener

(state: void): void

</docgen-api>

Listen to download events

  import { CapacitorUpdater } from '@capgo/capacitor-updater';

CapacitorUpdater.addListener('download', (info: any) => {
  console.log('download was fired', info.percent);
});

On iOS, Apple don't allow you to show a message when the app is updated, so you can't show a progress bar.

Inspiration

Contributors

jamesyoung1337 Thanks a lot for your guidance and support, it was impossible to make this plugin work without you.

changelog

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

4.9.2 (2022-11-06)

4.9.1 (2022-11-05)

Bug Fixes

4.9.0 (2022-11-04)

Features

Bug Fixes

4.8.1 (2022-11-03)

Bug Fixes

4.8.0 (2022-11-03)

Features

4.7.2 (2022-11-03)

Bug Fixes

4.7.1 (2022-11-03)

4.7.0 (2022-11-03)

Features

4.6.3 (2022-11-02)

Bug Fixes

4.6.2 (2022-11-01)

Bug Fixes

  • use right condition for allowEmulatorProd in android (4f1371e)

4.6.1 (2022-11-01)

Bug Fixes

4.6.0 (2022-11-01)

Features

  • add allowEmulatorProd option to ignore store start app (94e2799)

4.5.1 (2022-11-01)

Bug Fixes

4.5.0 (2022-10-28)

Features

  • add download_fail event (c03a0db)

4.4.12 (2022-10-28)

Bug Fixes

4.4.11 (2022-10-28)

Bug Fixes

  • add download_fail event (f00713b)

4.4.10 (2022-10-27)

Bug Fixes

  • definition issue and ios return key (7f2f0ae)

4.4.9 (2022-10-24)

Bug Fixes

  • missing start getLatest android (56709ad)

4.4.8 (2022-10-24)

Bug Fixes

4.4.7 (2022-10-24)

Bug Fixes

  • remove getLatest mendatory option (d85cc5b)

4.4.6 (2022-10-22)

Bug Fixes

  • use equals to compare checksum (f7b0a12)

4.4.5 (2022-10-20)

Bug Fixes

4.4.4 (2022-10-20)

Bug Fixes

4.4.3 (2022-10-20)

4.4.2 (2022-10-10)

4.4.1 (2022-10-06)

Bug Fixes

  • getDeviceId return type (037af0c)

4.4.0 (2022-10-05)

Features

  • add checksum check + lint (f4e2649)

4.3.7 (2022-09-29)

Bug Fixes

4.3.6 (2022-09-29)

Bug Fixes

4.3.5 (2022-09-29)

Bug Fixes

4.3.4 (2022-09-28)

Bug Fixes

4.3.3 (2022-09-28)

Bug Fixes

4.3.2 (2022-09-20)

4.3.1 (2022-09-19)

Bug Fixes

4.3.0 (2022-09-19)

Features

Bug Fixes

4.2.7 (2022-09-15)

Bug Fixes

  • use better practices for equality (6d6c177)

4.2.6 (2022-09-15)

Bug Fixes

  • error message wrong download (1c1e570)

4.2.5 (2022-09-15)

Bug Fixes

4.2.4 (2022-09-15)

Bug Fixes

4.2.3 (2022-09-15)

Bug Fixes

4.2.2 (2022-09-15)

Bug Fixes

4.2.1 (2022-09-11)

Bug Fixes

4.2.0 (2022-09-11)

Features

  • make auto update by default (a0cede5)

4.1.1 (2022-09-09)

Bug Fixes

  • debug message stats android (d4c96ac)

4.1.0 (2022-09-09)

Features

  • success and error callback sending stats (4cc76da)

Bug Fixes

4.0.1 (2022-09-08)

Bug Fixes

4.0.0 (2022-09-07)

4.0.0-alpha.57 (2022-09-03)

Bug Fixes

  • android: use this not self in java, fix build (442252a)

4.0.0-alpha.56 (2022-08-31)

3.3.20 (2022-08-22)

Bug Fixes

3.3.19 (2022-08-21)

Bug Fixes

3.3.18 (2022-08-18)

4.0.0-alpha.55 (2022-08-28)

Bug Fixes

  • make all setNextBundle in the same order in platforms (bbaf4ec)

4.0.0-alpha.54 (2022-08-28)

Bug Fixes

4.0.0-alpha.53 (2022-08-28)

Bug Fixes

4.0.0-alpha.52 (2022-08-27)

Bug Fixes

  • make builtin not try to delete (fbe1886)

4.0.0-alpha.51 (2022-08-24)

Bug Fixes

4.0.0-alpha.50 (2022-08-24)

Bug Fixes

4.0.0-alpha.49 (2022-08-24)

Bug Fixes

4.0.0-alpha.48 (2022-08-24)

Bug Fixes

4.0.0-alpha.47 (2022-08-24)

Bug Fixes

4.0.0-alpha.46 (2022-08-18)

Bug Fixes

  • rename Bundle var to have same name as Android (b68eee7)

3.3.17 (2022-08-05)

Bug Fixes

  • peer issues with capacitor (1166b2e)

3.3.16 (2022-08-03)

Bug Fixes

  • currentVersionNative convertion (186425f)

3.3.15 (2022-08-03)

Bug Fixes

  • updateAvailable listener (1423253)

3.3.14 (2022-08-03)

Bug Fixes

3.3.13 (2022-07-31)

Bug Fixes

3.3.12 (2022-07-01)

Bug Fixes

  • Trigger ci to remove beta from active (f4dca01)

3.3.11 (2022-06-17)

Bug Fixes

3.3.10 (2022-06-17)

Bug Fixes

3.3.9 (2022-06-16)

Bug Fixes

3.3.8 (2022-06-07)

Bug Fixes

3.3.7 (2022-06-01)

Bug Fixes

  • build with the new licence (1a5f53e)

3.3.6 (2022-06-01)

Bug Fixes

3.3.5 (2022-05-30)

Bug Fixes

  • add missing revert for stats (c736269)

3.3.4 (2022-05-09)

Bug Fixes

  • android: crashing on notifyDownload inifinite stack recursion (b93eeed)

3.3.3 (2022-05-04)

4.0.0-alpha.45 (2022-08-18)

Bug Fixes

  • currentVersionNative use wrong version in IOS (666a5cb)

4.0.0-alpha.44 (2022-08-15)

Bug Fixes

  • add missing def updateAvailable (1a58e65)

4.0.0-alpha.43 (2022-08-15)

Features

4.0.0-alpha.42 (2022-08-15)

Bug Fixes

4.0.0-alpha.41 (2022-08-15)

Bug Fixes

  • add logs in Auto-update (196d7be)

4.0.0-alpha.40 (2022-08-15)

Bug Fixes

  • auto reset issue in manual (03d266f)

4.0.0-alpha.39 (2022-08-15)

Bug Fixes

4.0.0-alpha.38 (2022-08-15)

Bug Fixes

4.0.0-alpha.37 (2022-08-15)

Bug Fixes

4.0.0-alpha.36 (2022-08-15)

Bug Fixes

4.0.0-alpha.35 (2022-08-11)

Bug Fixes

4.0.0-alpha.34 (2022-08-11)

Features

4.0.0-alpha.33 (2022-08-03)

Bug Fixes

4.0.0-alpha.32 (2022-08-03)

Bug Fixes

  • use right name in the event (7ab7821)

4.0.0-alpha.31 (2022-08-03)

Bug Fixes

  • backport updateAvailable event (d1c72b6)

4.0.0-alpha.30 (2022-08-03)

Bug Fixes

  • better error catch in android download (39a4f01)

4.0.0-alpha.29 (2022-08-03)

Bug Fixes

  • add arg check in android (b2360f0)

4.0.0-alpha.28 (2022-08-02)

Bug Fixes

4.0.0-alpha.27 (2022-07-31)

Bug Fixes

4.0.0-alpha.26 (2022-07-30)

Bug Fixes

4.0.0-alpha.25 (2022-07-30)

Bug Fixes

  • switch to load balancer (39e5fec)

4.0.0-alpha.24 (2022-07-28)

Bug Fixes

4.0.0-alpha.23 (2022-07-10)

Bug Fixes

4.0.0-alpha.22 (2022-07-10)

Bug Fixes

4.0.0-alpha.21 (2022-07-10)

Bug Fixes

  • function naming version to bundle (29520d9)

4.0.0-alpha.20 (2022-07-10)

Bug Fixes

4.0.0-alpha.19 (2022-07-10)

Bug Fixes

4.0.0-alpha.18 (2022-07-10)

Bug Fixes

4.0.0-alpha.17 (2022-07-10)

Bug Fixes

4.0.0-alpha.16 (2022-07-10)

Bug Fixes

4.0.0-alpha.15 (2022-07-10)

Bug Fixes

4.0.0-alpha.14 (2022-07-10)

Bug Fixes

4.0.0-alpha.13 (2022-07-09)

Bug Fixes

4.0.0-alpha.12 (2022-07-09)

Bug Fixes

  • rename getId in getDeviceId (caac92c)

4.0.0-alpha.11 (2022-07-09)

Bug Fixes

  • remove old useless vars (5992d36)

4.0.0-alpha.10 (2022-07-02)

Bug Fixes

  • sendStats use versionName (91de095)

4.0.0-alpha.9 (2022-07-02)

Bug Fixes

4.0.0-alpha.8 (2022-07-01)

Bug Fixes

4.0.0-alpha.7 (2022-07-01)

Bug Fixes

4.0.0-alpha.6 (2022-07-01)

Bug Fixes

4.0.0-alpha.5 (2022-07-01)

Bug Fixes

4.0.0-alpha.4 (2022-07-01)

Bug Fixes

  • rename autoUpdateUrl in updateUrl (169676c)

4.0.0-alpha.3 (2022-07-01)

Features

4.0.0-alpha.2 (2022-07-01)

Bug Fixes

  • publish on npm as next for dev (f545390)

4.0.0-alpha.1 (2022-07-01)

Bug Fixes

4.0.0-alpha.0 (2022-07-01)

⚠ BREAKING CHANGES

  • android: Java and TypeScript interfaces have changed for some plugin methods to support returning VersionInfo

Features

  • add DownloadComplete event and remove updateAvailable (1cbc934)
  • add event when fail install (e68a4d3)
  • add to download event version (2069379)
  • android: support notifyAppReady() in manual mode (b894788)
  • use post instead of get for update (f763cb5)

Bug Fixes

  • add cleanup ios (c412bf4)
  • add comment for easy understanding (9c59c02)
  • add DeferredNotifyAppReadyCheck and checkAppReady (ea2f18b)
  • add message from backend to display to users (e6fd0f2)
  • add missign methods in swift (c98ba70)
  • add missing class in swift (ff80a4d)
  • add missing definitions (4127f0f)
  • add missing method (712deea)
  • add next method (ca5a0f4)
  • all prebuild issue (1bd38ab)
  • allow store object in pref (b16b8ff)
  • android: autoUpdate properly compares version names during getLatest check (9e5c37c)
  • android: code style (13475a4)
  • android: dont allow redundant downloads of versions that already exist (e9f81d7)
  • android: ensure correct bundle properties are used when saving fallback version (caac9dc)
  • android: event listener calls should return bundle not version, as appropriate (2d1e180)
  • android: extra safe plugin API calls (2f09660)
  • android: fix file api usage (04783df)
  • android: fix incorrectly keyed json accessors (6071bfa)
  • android: function getting bundle by name should actually compare using name (b9d7e67)
  • android: handle CAP_SERVER_PATH empty string as default equivalent to 'public' (ea80afe)
  • android: next() function should set version status to PENDING (b0c1181)
  • android: onActivityStarted needs to be called in ALL modes (cd0b1aa)
  • android: use correct bundle property for commit/rollback (0839230)
  • appMovedToForeground (9f054ed)
  • auto update (d170455)
  • auto update (8fbae64)
  • build issue android (8ff71af)
  • cleanupObsoleteVersions (1fa7d97)
  • def issue (ba0f506)
  • definitions (3efc1cb)
  • definitions (0f62af4)
  • doc (31fbe56)
  • doc (b1a8a3e)
  • download missign methods calls (719d2f5)
  • error message (cceec00)
  • expose isAutoUpdateEnabled (b0befb1)
  • folder default issue (6ea750f)
  • function name (f40dd5b)
  • function name (a7a8001)
  • implement setCurrentBundle (b8a3e56)
  • info and status (67998a5)
  • install instruction (8b8523e)
  • ios part (2ff3224)
  • ios settings (8770d23)
  • issue cleanup (6c6e395)
  • issue naming in versionInfo (24c552a)
  • issue set (6d7b01c)
  • issue with isBuiltin is Unknow (0a6d963)
  • last compilation fail (c593f8b)
  • last missgin diff in swift (bf7f97a)
  • logs again (9e54db5)
  • logs messages (e0d9bf5)
  • make android file closer to ios one (c584e9d)
  • merge issue (0e14bcd)
  • merge issue (bbdbafd)
  • missign delete in ios (008c8a8)
  • name folder to id (fe789a3)
  • notifyAppReady ios (92de32e)
  • order (c6a0ca4)
  • put back old number version (0866064)
  • reload and logs (8c963ab)
  • remove debug comment (cd21c96)
  • remove getter and setters (a4c0c58)
  • remove old code (e168824)
  • remove useless import (131fb2a)
  • remove versionName from next (7df3471)
  • reset (c16c597)
  • save and download issue (d325ec9)
  • saveVersionInfo implem (be2dce0)
  • sendStats in android and updateFailed position (fd3e744)
  • some other logs (1e82ece)
  • use bundle instead of version in appropriate places (affects both typescript and java, possibly ios) (2a40471)
  • use only ont TAG in the whole code (2ad10ec)
  • useless stored var (3fdae2b)
  • versionInfo and Status (b64aa04)
  • versionInfo to BundleInfo (d5c300e)
  • web (9bdf9cc)

3.3.17 (2022-08-05)

Fix

  • peer issues with capacitor

3.3.16 (2022-08-03)

Fix

  • currentVersionNative convertion

3.3.15 (2022-08-03)

Fix

  • updateAvailable listener

3.3.14 (2022-08-03)

Fix

  • current method

3.3.13 (2022-07-31)

Fix

  • UUID source on android

3.3.12 (2022-07-01)

Fix

  • Trigger ci to remove beta from active

3.3.11 (2022-06-17)

Fix

  • Auto update setup

3.3.10 (2022-06-17)

Fix

  • install instructions

3.3.9 (2022-06-16)

Fix

  • Update typos in README
  • Update typos in README

3.3.8 (2022-06-07)

Fix

  • licencing

3.3.7 (2022-06-01)

Fix

  • build with the new licence

3.3.6 (2022-06-01)

Fix

  • typo issue

3.3.5 (2022-05-30)

Fix

  • add missing revert for stats

3.3.4 (2022-05-09)

Fix

  • android: crashing on notifyDownload inifinite stack recursion
  • android: crashing on notifyDownload inifinite stack recursion

3.3.3 (2022-05-04)

Fix

  • add missing definitions

3.3.2 (2022-05-04)

Fix

  • android: Fix typo in 'getPluginVersion'

3.3.1 (2022-05-04)

Fix

  • add missing def ios

3.3.0 (2022-05-04)

Fix

  • add getPluginVersion
  • remove duplicated var
  • better error handling download function
  • lint
  • order
  • var order
  • some issue in order
  • remove event for now to have simple interface

Feat

  • android: download method bubbles exception to client

3.2.1 (2022-04-29)

Fix

  • doc link issue

3.2.0 (2022-04-22)

Feat

  • add os version in metadata

3.1.0 (2022-04-20)

Feat

  • add versionCode in stats and update

3.0.10 (2022-04-20)

Fix

  • reset issue android cannot hot reload

3.0.9 (2022-04-19)

Fix

  • order issue resetWhenUpdate

3.0.8 (2022-04-16)

Fix

  • issue android

3.0.7 (2022-04-16)

Fix

  • naming

3.0.6 (2022-04-16)

Fix

  • file npm

3.0.5 (2022-04-16)

Fix

  • naming issue

3.0.4 (2022-04-16)

Fix

  • doc

3.0.3 (2022-04-16)

Fix

  • again issue typo version npm

3.0.2 (2022-04-16)

Fix

  • issue in release naming

3.0.1 (2022-04-16)

Fix

  • tigger CI

3.0.0 (2022-04-16)

Fix

  • issue path for auto version update
  • tigger CI
  • wrong version send
  • pack version
  • android build
  • version number
  • remove call when not necessary
  • send builtin if no version
  • platform
  • typing issue
  • typing
  • def issue
  • remove auto update logic from app
  • issue with OSX hidden folder

Feat

  • make auto update server side first
  • add pluginVersion send to server
  • reset on update by default.
  • add currentNative to get current
  • add updateAvailable event
  • add getId method for version by device control
  • :boom: use the new auto update system
  • add headers to getLatest for future usage

BREAKING CHANGE

  • the url config change and not compatible with the past one

2.3.3 (2022-04-05)

Fix

  • persistent path issue during delete
  • persistent path issue during delete

2.3.2 (2022-03-31)

Fix

  • issue in android with new event

2.3.1 (2022-03-31)

Fix

  • npm listing

2.3.0 (2022-03-31)

Feat

  • add majorAvailable event

2.2.6 (2022-03-28)

Fix

  • documentation

2.2.5 (2022-03-28)

Fix

  • issue conversion

2.2.4 (2022-03-28)

Fix

  • init version

2.2.3 (2022-03-28)

Fix

  • init value for version ios
  • build error ios

2.2.2 (2022-03-28)

Fix

  • version issue ios

2.2.1 (2022-03-28)

Fix

  • issue with resetWhenUpdate

2.2.0 (2022-03-28)

Feat

  • add resetWhenUpdate system

Fix

  • error in ios missing code disableAutoUpdateUnderNative

2.1.1 (2022-03-26)

Fix

  • use demo-app in the doc

2.1.0 (2022-03-26)

Feat

  • add disableAutoUpdateUnderNative and disableAutoUpdateToMajor capability

2.0.16 (2022-03-25)

Fix

  • issue with download percent

2.0.15 (2022-03-24)

Fix

  • doc add link for API key

2.0.14 (2022-03-24)

Fix

  • add missing keywork in set step

2.0.13 (2022-03-24)

Fix

  • better documentation for auto update

2.0.12 (2022-03-22)

Fix

  • add definition for download event

2.0.11 (2022-03-16)

Fix

  • keywords npm

2.0.10 (2022-03-14)

Fix

  • type def for reset

2.0.9 (2022-03-14)

Fix

  • issue ios copy

2.0.8 (2022-03-10)

Fix

  • remove duplicated code and allow init without plugin

2.0.7 (2022-03-09)

Fix

  • broken version system ios
  • background thread issue ios

2.0.6 (2022-03-08)

Fix

  • last typo issue
  • typo

2.0.5 (2022-03-08)

Fix

  • typo again

2.0.4 (2022-03-08)

Fix

  • typo issue

2.0.3 (2022-03-07)

Fix

  • build issue

2.0.2 (2022-03-07)

Fix

  • build issue

2.0.1 (2022-03-07)

Fix

  • build issue

2.0.0 (2022-03-07)

BREAKING CHANGE

  • change default to builtin as default value

1.5.1 (2022-03-07)

Fix

  • typo in text

1.5.0 (2022-03-07)

Fix

  • remove lint in CI for now
  • log messages make them same between platforms
  • remove unzip logs
  • upgrade version for publication
  • android log
  • android download issue in evnt system
  • log messages android
  • remove just dependency
  • remove useless doc
  • stats use config appId
  • android
  • SecurityException start path
  • documentation links
  • make doc beatifull
  • documentation in npm
  • android issue
  • if empty folder
  • typo android stats
  • android stats methods
  • android stats method
  • delay android
  • issue build
  • async get version issue
  • remove error with this android
  • dispatch async ios
  • make first check async
  • missing reset versionName
  • reset function issue android
  • reset function issue android
  • android for capacitor-go usage
  • typedef
  • reset function
  • reset for ios
  • reset android
  • remove bad return
  • last android typo
  • package
  • persistence in android
  • current and disable reset in ios for now
  • add missing function declarion ios
  • typo
  • file exist issue
  • add back build.gradle mistaken deleted
  • update version number missing
  • update version number for android version
  • docgen
  • make persistency work too
  • reload only if lastPath set
  • give more freedom to dev who use the plugin
  • persist version between reload
  • make version install work on ios
  • path issue
  • import ios
  • use android studio to catch errors

Feat

  • allow reset to auto update version + add CI
  • add download event
  • add stats methods
  • add cancel delay
  • add delayupdate
  • release minor version for new feature availability
  • make auto update revert if fail to load
  • make live update work in IOS and Android
  • add versionName and reload + WIP auto update
  • add current method
  • add reset method to revert to original
  • add persistency android
  • make hotreload work in Android
  • add methods to decouple update
  • add just and reload
  • make unzip and copy step
  • add base of ios, download file
  • transfor android and ios with necessary base
  • add web definition