Skip to content

Auto Update

See publish configuration for information on how to configure your local or CI environment for automated deployments.

Code signing is required on macOS

macOS application must be signed in order for auto updating to work.

Auto-updatable Targets

  • macOS: DMG.
  • Linux: AppImage, DEB and RPM.
  • Windows: NSIS.

All these targets are default, custom configuration is not required. (Though it is possible to pass in additional configuration, e.g. request headers.)

Squirrel.Windows is not supported

Simplified auto-update is supported on Windows if you use the default NSIS target, but is not supported for Squirrel.Windows. You can easily migrate to NSIS.

Differences between electron-updater and built-in autoUpdater

  • Dedicated release server is not required.
  • Code signature validation not only on macOS, but also on Windows.
  • All required metadata files and artifacts are produced and published automatically.
  • Download progress and staged rollouts supported on all platforms.
  • Different providers supported out of the box (GitHub Releases, Amazon S3, DigitalOcean Spaces, Keygen and generic HTTP(s) server).
  • You need only 2 lines of code to make it work.

Quick Setup Guide

  1. Install electron-updater as an app dependency.

  2. Configure publish.

  3. Use autoUpdater from electron-updater instead of electron:

    JavaScript

    const { autoUpdater } = require("electron-updater")
    
    ES2015
    import { autoUpdater } from "electron-updater"
    
    ESM
    import electronUpdater, { type AppUpdater } from 'electron-updater';
    
    export function getAutoUpdater(): AppUpdater {
       // Using destructuring to access autoUpdater due to the CommonJS module of 'electron-updater'.
       // It is a workaround for ESM compatibility issues, see https://github.com/electron-userland/electron-builder/issues/7976.
       const { autoUpdater } = electronUpdater;
       return autoUpdater;
    }  
    

  4. Call autoUpdater.checkForUpdatesAndNotify(). Or, if you need custom behaviour, implement electron-updater events, check examples below.

Note

  1. Do not call setFeedURL. electron-builder automatically creates app-update.yml file for you on build in the resources (this file is internal, you don’t need to be aware of it).
  2. zip target for macOS is required for Squirrel.Mac, otherwise latest-mac.yml cannot be created, which causes autoUpdater error. Default target for macOS is dmg+zip, so there is no need to explicitly specify target.

Examples

Example in TypeScript using system notifications

import { autoUpdater } from "electron-updater"

export default class AppUpdater {
  constructor() {
    const log = require("electron-log")
    log.transports.file.level = "debug"
    autoUpdater.logger = log
    autoUpdater.checkForUpdatesAndNotify()
  }
}

Custom Options instantiating updater Directly

If you want to more control over the updater configuration (e.g. request header for authorization purposes), you can instantiate the updater directly.

import { NsisUpdater } from "electron-updater"
// Or MacUpdater, AppImageUpdater

export default class AppUpdater {
    constructor() {
        const options = {
            requestHeaders: {
                // Any request headers to include here
            },
            provider: 'generic',
            url: 'https://example.com/auto-updates'
        }

        const autoUpdater = new NsisUpdater(options)
        autoUpdater.addAuthHeader(`Bearer ${token}`)
        autoUpdater.checkForUpdatesAndNotify()
    }
}

Debugging

You don’t need to listen all events to understand what’s wrong. Just set logger. electron-log is recommended (it is an additional dependency that you can install if needed).

autoUpdater.logger = require("electron-log")
autoUpdater.logger.transports.file.level = "info"

Note that in order to develop/test UI/UX of updating without packaging the application you need to have a file named dev-app-update.yml in the root of your project, which matches your publish setting from electron-builder config (but in yaml format). But it is not recommended, better to test auto-update for installed application (especially on Windows). Minio is recommended as a local server for testing updates.

Compatibility

Generated metadata files format changes from time to time, but compatibility preserved up to version 1. If you start a new project, recommended to set electronUpdaterCompatibility to current latest format version (>= 2.16).

Option electronUpdaterCompatibility set the electron-updater compatibility semver range. Can be specified per platform.

e.g. >= 2.16, >=1.0.0. Defaults to >=2.15

  • 1.0.0 latest-mac.json
  • 2.15.0 path
  • 2.16.0 files

Staged Rollouts

Staged rollouts allow you to distribute the latest version of your app to a subset of users that you can increase over time, similar to rollouts on platforms like Google Play.

Staged rollouts are controlled by manually editing your latest.yml / latest-mac.yml (channel update info file).

version: 1.1.0
path: TestApp Setup 1.1.0.exe
sha512: Dj51I0q8aPQ3ioaz9LMqGYujAYRbDNblAQbodDRXAMxmY6hsHqEl3F6SvhfJj5oPhcqdX1ldsgEvfMNXGUXBIw==
stagingPercentage: 10

Update will be shipped to 10% of userbase.

If you want to pull a staged release because it hasn’t gone well, you must increment the version number higher than your broken release. Because some of your users will be on the broken 1.0.1, releasing a new 1.0.1 would result in them staying on a broken version.

File Generated and Uploaded in Addition

latest.yml (or latest-mac.yml for macOS, or latest-linux.yml for Linux) will be generated and uploaded for all providers except bintray (because not required, bintray doesn’t use latest.yml).

Private GitHub Update Repo

You can use a private repository for updates with electron-updater by setting the GH_TOKEN environment variable (on user machine) and private option. If GH_TOKEN is set, electron-updater will use the GitHub API for updates allowing private repositories to work.

Warning

Private GitHub provider only for very special cases — not intended and not suitable for all users.

Note

The GitHub API currently has a rate limit of 5000 requests per user per hour. An update check uses up to 3 requests per check.

Events

The autoUpdater object emits the following events:

Event: error

  • error Error

Emitted when there is an error while updating.

Event: checking-for-update

Emitted when checking if an update has started.

Event: update-available

Emitted when there is an available update. The update is downloaded automatically if autoDownload is true.

Event: update-not-available

Emitted when there is no available update.

Event: download-progress

  • progress ProgressInfo
  • bytesPerSecond
  • percent
  • total
  • transferred

Emitted on progress.

Event: update-downloaded

API

builder-util-runtime
electron-updater

builder-util-runtime

BaseS3OptionsPublishConfiguration

Kind: interface of builder-util-runtime
Extends: PublishConfiguration
Properties * channel = latest String | “undefined” - The update channel. * path = / String | “undefined” - The directory path. * acl = public-read “private” | “public-read” | “undefined” - The ACL. Set to null to not add. * provider “github” | “bintray” | “s3” | “spaces” | “generic” | “custom” | “snapStore” | “keygen” - The provider. * publishAutoUpdate = true Boolean - Whether to publish auto update info files.

Auto update relies only on the first provider in the list (you can specify several publishers). Thus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded. * requestHeaders [key: string]: string - Any custom request headers

BintrayOptionsPublishConfiguration

Bintray options. Requires an API key. An API key can be obtained from the user profile page (“Edit Your Profile” -> API Key). Define BT_TOKEN environment variable.

Kind: interface of builder-util-runtime
Extends: PublishConfiguration
Properties * provider “bintray” - The provider. Must be bintray. * package String | “undefined” - The Bintray package name. * repo = generic String | “undefined” - The Bintray repository name. * owner String | “undefined” - The owner. * component String | “undefined” - The Bintray component (Debian only). * distribution = stable String | “undefined” - The Bintray distribution (Debian only). * user String | “undefined” - The Bintray user account. Used in cases where the owner is an organization. * token String | “undefined” * publishAutoUpdate = true Boolean - Whether to publish auto update info files.

Auto update relies only on the first provider in the list (you can specify several publishers). Thus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded. * requestHeaders [key: string]: string - Any custom request headers

BlockMap

Kind: interface of builder-util-runtime
Properties * version “1” | “2” * files Array<module:builder-util-runtime/out/blockMapApi.BlockMapFile>

BlockMapDataHolder

Kind: interface of builder-util-runtime
Properties * size Number - The file size. Used to verify downloaded size (save one HTTP request to get length). Also used when block map data is embedded into the file (appimage, windows web installer package). * blockMapSize Number - The block map file size. Used when block map data is embedded into the file (appimage, windows web installer package). This information can be obtained from the file itself, but it requires additional HTTP request, so, to reduce request count, block map size is specified in the update metadata too. * sha512 String - The file checksum. * isAdminRightsRequired Boolean

CustomPublishOptionsPublishConfiguration

Kind: interface of builder-util-runtime
Extends: PublishConfiguration
Properties * provider “custom” - The provider. Must be custom. * updateProvider module:builder-util-runtime/out/publishOptions.__type - The Provider to provide UpdateInfo regarding available updates. Required to use custom providers with electron-updater. * publishAutoUpdate = true Boolean - Whether to publish auto update info files.

Auto update relies only on the first provider in the list (you can specify several publishers). Thus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded. * requestHeaders [key: string]: string - Any custom request headers

DownloadOptions

Kind: interface of builder-util-runtime
Properties * headers [key: string]: string | “undefined” * sha2 String | “undefined” * sha512 String | “undefined” * cancellationToken CancellationToken * onProgress callback

GenericServerOptionsPublishConfiguration

Generic (any HTTP(S) server) options. In all publish options File Macros are supported.

Kind: interface of builder-util-runtime
Extends: PublishConfiguration
Properties * provider “generic” - The provider. Must be generic. * url String - The base url. e.g. https://bucket_name.s3.amazonaws.com. * channel = latest String | “undefined” - The channel. * useMultipleRangeRequest Boolean - Whether to use multiple range requests for differential update. Defaults to true if url doesn’t contain s3.amazonaws.com. * publishAutoUpdate = true Boolean - Whether to publish auto update info files.

Auto update relies only on the first provider in the list (you can specify several publishers). Thus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded. * requestHeaders [key: string]: string - Any custom request headers

GithubOptionsPublishConfiguration

GitHub options.

GitHub personal access token is required. You can generate by going to https://github.com/settings/tokens/new. The access token should have the repo scope/permission. Define GH_TOKEN environment variable.

Kind: interface of builder-util-runtime
Extends: PublishConfiguration
Properties * provider “github” - The provider. Must be github. * repo String | “undefined” - The repository name. Detected automatically. * owner String | “undefined” - The owner. * vPrefixedTagName = true Boolean - Whether to use v-prefixed tag name. * host = github.com String | “undefined” - The host (including the port if need). * protocol = https “https” | “http” | “undefined” - The protocol. GitHub Publisher supports only https. * token String | “undefined” - The access token to support auto-update from private github repositories. Never specify it in the configuration files. Only for setFeedURL. * private Boolean | “undefined” - Whether to use private github auto-update provider if GH_TOKEN environment variable is defined. See Private GitHub Update Repo. * releaseType = draft “draft” | “prerelease” | “release” | “undefined” - The type of release. By default draft release will be created.

Also you can set release type using environment variable. If EP_DRAFTis set to truedraft, if EP_PRE_RELEASEis set to trueprerelease. * publishAutoUpdate = true Boolean - Whether to publish auto update info files.

Auto update relies only on the first provider in the list (you can specify several publishers). Thus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded. * requestHeaders [key: string]: string - Any custom request headers

KeygenOptionsPublishConfiguration

Keygen options. https://keygen.sh/ Define KEYGEN_TOKEN environment variable.

Kind: interface of builder-util-runtime
Extends: PublishConfiguration
Properties * provider “keygen” - The provider. Must be keygen. * account String - Keygen account’s UUID * product String - Keygen product’s UUID * channel = stable “stable” | “rc” | “beta” | “alpha” | “dev” | “undefined” - The channel. * platform String | “undefined” - The target Platform. Is set programmatically explicitly during publishing. * publishAutoUpdate = true Boolean - Whether to publish auto update info files.

Auto update relies only on the first provider in the list (you can specify several publishers). Thus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded. * requestHeaders [key: string]: string - Any custom request headers

PackageFileInfoBlockMapDataHolder

Kind: interface of builder-util-runtime
Extends: BlockMapDataHolder
Properties * path String

ProgressInfo

Kind: interface of builder-util-runtime
Properties * total Number * delta Number * transferred Number * percent Number * bytesPerSecond Number

PublishConfiguration

Kind: interface of builder-util-runtime
Properties * provider “github” | “bintray” | “s3” | “spaces” | “generic” | “custom” | “snapStore” | “keygen” - The provider. * publishAutoUpdate = true Boolean - Whether to publish auto update info files.

Auto update relies only on the first provider in the list (you can specify several publishers). Thus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded. * requestHeaders [key: string]: string - Any custom request headers

ReleaseNoteInfo

Kind: interface of builder-util-runtime
Properties * version String - The version. * note String | “undefined” - The note.

RequestHeaders[key: string]: OutgoingHttpHeader | undefined

Kind: interface of builder-util-runtime
Extends: [key: string]: OutgoingHttpHeader | undefined

S3OptionsBaseS3Options

Kind: interface of builder-util-runtime
Extends: BaseS3Options
Properties * provider “s3” - The provider. Must be s3. * bucket String - The bucket name. * region String | “undefined” - The region. Is determined and set automatically when publishing. * acl = public-read “private” | “public-read” | “undefined” - The ACL. Set to null to not add.

Please see required permissions for the S3 provider. * storageClass = STANDARD “STANDARD” | “REDUCED_REDUNDANCY” | “STANDARD_IA” | “undefined” - The type of storage to use for the object. * encryption “AES256” | “aws:kms” | “undefined” - Server-side encryption algorithm to use for the object. * endpoint String | “undefined” - The endpoint URI to send requests to. The default endpoint is built from the configured region. The endpoint should be a string like https://{service}.{region}.amazonaws.com.

SnapStoreOptionsPublishConfiguration

Snap Store options.

Kind: interface of builder-util-runtime
Extends: PublishConfiguration
Properties * provider “snapStore” - The provider. Must be snapStore. * repo String - snapcraft repo name * channels = ["edge"] String | Array<String> | “undefined” - The list of channels the snap would be released. * publishAutoUpdate = true Boolean - Whether to publish auto update info files.

Auto update relies only on the first provider in the list (you can specify several publishers). Thus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded. * requestHeaders [key: string]: string - Any custom request headers

SpacesOptionsBaseS3Options

DigitalOcean Spaces options. Access key is required, define DO_KEY_ID and DO_SECRET_KEY environment variables.

Kind: interface of builder-util-runtime
Extends: BaseS3Options
Properties * provider “spaces” - The provider. Must be spaces. * name String - The space name. * region String - The region (e.g. nyc3).

UpdateFileInfoBlockMapDataHolder

Kind: interface of builder-util-runtime
Extends: BlockMapDataHolder
Properties * url String

UpdateInfo

Kind: interface of builder-util-runtime
Properties * version String - The version. * files Array<UpdateFileInfo> * path String - Deprecated: {tag.description} * sha512 String - Deprecated: {tag.description} * releaseName String | “undefined” - The release name. * releaseNotes String | Array<ReleaseNoteInfo> | “undefined” - The release notes. List if updater.fullChangelog is set to true, string otherwise. * releaseDate String - The release date. * stagingPercentage Number - The staged rollout percentage, 0-100.

WindowsUpdateInfoUpdateInfo

Kind: interface of builder-util-runtime
Extends: UpdateInfo
Properties * packages Object<String, any> | “undefined”

CancellationError ⇐ Error

Kind: class of builder-util-runtime
Extends: Error

CancellationToken ⇐ module:events.EventEmitter

Kind: class of builder-util-runtime
Extends: module:events.EventEmitter
Properties * cancelled Boolean

Methods * .CancellationTokenmodule:events.EventEmitter * .cancel() * .createPromise(callback)Promise<module:builder-util-runtime/out/CancellationToken.R> * .dispose()

cancellationToken.cancel()

cancellationToken.createPromise(callback)Promise<module:builder-util-runtime/out/CancellationToken.R>

  • callback callback

cancellationToken.dispose()

DigestTransform ⇐ internal:Transform

Kind: class of builder-util-runtime
Extends: internal:Transform
Properties * actual String * isValidateOnEnd = true Boolean

Methods * .DigestTransforminternal:Transform * ._flush(callback) * ._transform(chunk, encoding, callback) * .validate()null

digestTransform._flush(callback)

  • callback any

digestTransform._transform(chunk, encoding, callback)

  • chunk module:global.Buffer
  • encoding String
  • callback any

digestTransform.validate()null

HttpError ⇐ Error

Kind: class of builder-util-runtime
Extends: Error

httpError.isServerError()Boolean

HttpExecutor

Kind: class of builder-util-runtime

httpExecutor.addErrorAndTimeoutHandlers(request, reject)

  • request any
  • reject callback

httpExecutor.createRequest(options, callback)module:builder-util-runtime/out/httpExecutor.T

  • options any
  • callback callback

httpExecutor.doApiRequest(options, cancellationToken, requestProcessor, redirectCount)Promise<String>

  • options module:http.RequestOptions
  • cancellationToken CancellationToken
  • requestProcessor callback
  • redirectCount

httpExecutor.downloadToBuffer(url, options)Promise<module:global.Buffer>

httpExecutor.prepareRedirectUrlOptions(redirectUrl, options)module:http.RequestOptions

  • redirectUrl String
  • options module:http.RequestOptions

httpExecutor.request(options, cancellationToken, data)Promise< | String>

  • options module:http.RequestOptions
  • cancellationToken CancellationToken
  • data Object<String, any> | “undefined”

httpExecutor.retryOnServerError(task, maxRetries)Promise<any>

  • task callback
  • maxRetries

ProgressCallbackTransform ⇐ internal:Transform

Kind: class of builder-util-runtime
Extends: internal:Transform

progressCallbackTransform._flush(callback)

  • callback any

progressCallbackTransform._transform(chunk, encoding, callback)

  • chunk any
  • encoding String
  • callback any

UUID

Kind: class of builder-util-runtime
Properties * OID = UUID.parse("6ba7b812-9dad-11d1-80b4-00c04fd430c8") module:global.Buffer

Methods * .UUID * .check(uuid, offset)“undefined” | module:builder-util-runtime/out/uuid.__object | module:builder-util-runtime/out/uuid.__object * .inspect()String * .parse(input)module:global.Buffer * .toString()String * .v5(name, namespace)any

uuiD.check(uuid, offset)“undefined” | module:builder-util-runtime/out/uuid.__object | module:builder-util-runtime/out/uuid.__object

  • uuid module:global.Buffer | String
  • offset

uuiD.inspect()String

uuiD.parse(input)module:global.Buffer

  • input String

uuiD.toString()String

uuiD.v5(name, namespace)any

  • name String | module:global.Buffer
  • namespace module:global.Buffer

XElement

Kind: class of builder-util-runtime
Properties * value= String * attributes Object<String, any> | “undefined” * isCData = false Boolean * elements Array<XElement> | “undefined”

Methods * .XElement * .attribute(name)String * .element(name, ignoreCase, errorIfMissed)XElement * .elementOrNull(name, ignoreCase)null | XElement * .getElements(name, ignoreCase)Array<XElement> * .elementValueOrEmpty(name, ignoreCase)String * .removeAttribute(name)

xElement.attribute(name)String

  • name String

xElement.element(name, ignoreCase, errorIfMissed)XElement

  • name String
  • ignoreCase
  • errorIfMissed String | “undefined”

xElement.elementOrNull(name, ignoreCase)null | XElement

  • name String
  • ignoreCase

xElement.getElements(name, ignoreCase)Array<XElement>

  • name String
  • ignoreCase

xElement.elementValueOrEmpty(name, ignoreCase)String

  • name String
  • ignoreCase

xElement.removeAttribute(name)

  • name String

builder-util-runtime.asArray(v)Array<module:builder-util-runtime.T>

Kind: method of builder-util-runtime

  • v “undefined” | undefined | module:builder-util-runtime.T | Array<module:builder-util-runtime.T>

builder-util-runtime.configureRequestOptions(options, token, method)module:http.RequestOptions

Kind: method of builder-util-runtime

  • options module:http.RequestOptions
  • token String | “undefined”
  • method “GET” | “DELETE” | “PUT”

builder-util-runtime.configureRequestOptionsFromUrl(url, options)module:http.RequestOptions

Kind: method of builder-util-runtime

  • url String
  • options module:http.RequestOptions

builder-util-runtime.configureRequestUrl(url, options)

Kind: method of builder-util-runtime

  • url module:url.URL
  • options module:http.RequestOptions

builder-util-runtime.createHttpError(response, description)HttpError

Kind: method of builder-util-runtime

  • response module:http.IncomingMessage
  • description any | “undefined”

builder-util-runtime.getS3LikeProviderBaseUrl(configuration)String

Kind: method of builder-util-runtime

builder-util-runtime.newError(message, code)Error

Kind: method of builder-util-runtime

  • message String
  • code String

builder-util-runtime.parseDn(seq)Map<String | String>

Kind: method of builder-util-runtime

  • seq String

builder-util-runtime.parseJson(result)Promise<any>

Kind: method of builder-util-runtime

  • result Promise< | String>

builder-util-runtime.parseXml(data)XElement

Kind: method of builder-util-runtime

  • data String

builder-util-runtime.safeGetHeader(response, headerKey)any

Kind: method of builder-util-runtime

  • response any
  • headerKey String

builder-util-runtime.safeStringifyJson(data, skippedNames)String

Kind: method of builder-util-runtime

  • data any
  • skippedNames Set<String>

electron-updater

Logger

Kind: interface of electron-updater

logger.debug(message)

  • message String

logger.error(message)

  • message any

logger.info(message)

  • message any

logger.warn(message)

  • message any

ResolvedUpdateFileInfo

Kind: interface of electron-updater
Properties * url module:url.URL * info module:builder-util-runtime.UpdateFileInfo * packageInfo module:builder-util-runtime.PackageFileInfo

UpdateCheckResult

Kind: interface of electron-updater
Properties * updateInfo module:builder-util-runtime.UpdateInfo * downloadPromise Promise<Array<String>> | “undefined” * cancellationToken CancellationToken * versionInfo module:builder-util-runtime.UpdateInfo - Deprecated: {tag.description}

UpdateDownloadedEventmodule:builder-util-runtime.UpdateInfo

Kind: interface of electron-updater
Extends: module:builder-util-runtime.UpdateInfo
Properties * downloadedFile String

AppImageUpdater ⇐ module:electron-updater/out/BaseUpdater.BaseUpdater

Kind: class of electron-updater
Extends: module:electron-updater/out/BaseUpdater.BaseUpdater

appImageUpdater.isUpdaterActive()Boolean

AppUpdater ⇐ module:events.EventEmitter

Kind: class of electron-updater
Extends: module:events.EventEmitter
Properties * autoDownload = true Boolean - Whether to automatically download an update when it is found. * autoInstallOnAppQuit = true Boolean - Whether to automatically install a downloaded update on app quit (if quitAndInstall was not called before). * allowPrerelease = false Boolean - GitHub provider only. Whether to allow update to pre-release versions. Defaults to true if application version contains prerelease components (e.g. 0.12.1-alpha.1, here alpha is a prerelease component), otherwise false.

If true, downgrade will be allowed (allowDowngrade will be set to true). * fullChangelog = false Boolean - GitHub provider only. Get all release notes (from current version to latest), not just the latest. * allowDowngrade = false Boolean - Whether to allow version downgrade (when a user from the beta channel wants to go back to the stable channel).

Taken in account only if channel differs (pre-release version component in terms of semantic versioning). * currentVersion SemVer - The current application version. * channel String | “undefined” - Get the update channel. Not applicable for GitHub. Doesn’t return channel from the update configuration, only if was previously set. * requestHeaders [key: string]: string | “undefined” - The request headers. * netSession Electron:Session * logger Logger | “undefined” - The logger. You can pass electron-log, winston or another logger with the following interface: { info(), warn(), error() }. Set it to null if you would like to disable a logging feature. * signals = new UpdaterSignal(this) UpdaterSignal * configOnDisk = new Lazy<any>(() => this.loadUpdateConfig()) Lazy<any> * httpExecutor module:electron-updater/out/electronHttpExecutor.ElectronHttpExecutor * isAddNoCacheQuery Boolean

Methods * .AppUpdatermodule:events.EventEmitter * .addAuthHeader(token) * .checkForUpdates()Promise<UpdateCheckResult> * .checkForUpdatesAndNotify(downloadNotification)Promise< | UpdateCheckResult> * .downloadUpdate(cancellationToken)Promise<Array<String>> * .getFeedURL()undefined | null | String * .setFeedURL(options) * .isUpdaterActive()Boolean * .quitAndInstall(isSilent, isForceRunAfter)

appUpdater.addAuthHeader(token)

Shortcut for explicitly adding auth tokens to request headers

  • token String

appUpdater.checkForUpdates()Promise<UpdateCheckResult>

Asks the server whether there is an update.

appUpdater.checkForUpdatesAndNotify(downloadNotification)Promise< | UpdateCheckResult>

  • downloadNotification module:electron-updater/out/AppUpdater.DownloadNotification

appUpdater.downloadUpdate(cancellationToken)Promise<Array<String>>

Start downloading update manually. You can use this method if autoDownload option is set to false.

Returns: Promise<Array<String>> - Paths to downloaded files.

  • cancellationToken CancellationToken

appUpdater.getFeedURL()undefined | null | String

appUpdater.setFeedURL(options)

Configure update provider. If value is string, GenericServerOptions will be set with value as url.

appUpdater.isUpdaterActive()Boolean

appUpdater.quitAndInstall(isSilent, isForceRunAfter)

Restarts the app and installs the update after it has been downloaded. It should only be called after update-downloaded has been emitted.

Note: autoUpdater.quitAndInstall() will close all application windows first and only emit before-quit event on app after that. This is different from the normal quit event sequence.

  • isSilent Boolean - windows-only Runs the installer in silent mode. Defaults to false.
  • isForceRunAfter Boolean - Run the app after finish even on silent install. Not applicable for macOS. Ignored if isSilent is set to false.

MacUpdater ⇐ AppUpdater

Kind: class of electron-updater
Extends: AppUpdater

macUpdater.quitAndInstall()

Overrides: quitAndInstall

macUpdater.addAuthHeader(token)

Shortcut for explicitly adding auth tokens to request headers

  • token String

macUpdater.checkForUpdates()Promise<UpdateCheckResult>

Asks the server whether there is an update.

macUpdater.checkForUpdatesAndNotify(downloadNotification)Promise< | UpdateCheckResult>

  • downloadNotification module:electron-updater/out/AppUpdater.DownloadNotification

macUpdater.downloadUpdate(cancellationToken)Promise<Array<String>>

Start downloading update manually. You can use this method if autoDownload option is set to false.

Returns: Promise<Array<String>> - Paths to downloaded files.

  • cancellationToken CancellationToken

macUpdater.getFeedURL()undefined | null | String

macUpdater.setFeedURL(options)

Configure update provider. If value is string, GenericServerOptions will be set with value as url.

macUpdater.isUpdaterActive()Boolean

NsisUpdater ⇐ module:electron-updater/out/BaseUpdater.BaseUpdater

Kind: class of electron-updater
Extends: module:electron-updater/out/BaseUpdater.BaseUpdater

Provider

Kind: class of electron-updater
Properties * isUseMultipleRangeRequest Boolean * fileExtraDownloadHeaders [key: string]: string | “undefined”

Methods * .Provider * .getLatestVersion()Promise<module:electron-updater/out/providers/Provider.T> * .setRequestHeaders(value) * .resolveFiles(updateInfo)Array<ResolvedUpdateFileInfo>

provider.getLatestVersion()Promise<module:electron-updater/out/providers/Provider.T>

provider.setRequestHeaders(value)

  • value [key: string]: string | “undefined”

provider.resolveFiles(updateInfo)Array<ResolvedUpdateFileInfo>

  • updateInfo module:electron-updater/out/providers/Provider.T

UpdaterSignal

Kind: class of electron-updater

updaterSignal.login(handler)

Emitted when an authenticating proxy is asking for user credentials.

  • handler module:electron-updater.__type

updaterSignal.progress(handler)

  • handler callback

updaterSignal.updateCancelled(handler)

  • handler callback

updaterSignal.updateDownloaded(handler)

  • handler callback

electron-updater.autoUpdater : AppUpdater

Kind: constant of electron-updater

electron-updater.DOWNLOAD_PROGRESS : “login” | “checking-for-update” | “update-available” | “update-not-available” | “update-cancelled” | “download-progress” | “update-downloaded” | “error”

Kind: constant of electron-updater

electron-updater.UPDATE_DOWNLOADED : “login” | “checking-for-update” | “update-available” | “update-not-available” | “update-cancelled” | “download-progress” | “update-downloaded” | “error”

Kind: constant of electron-updater