autoUpdater
Permet aux application de se mettre à jour automatiquement.
Process: Main
See also: A detailed guide about how to implement updates in your application.
autoUpdater
is an EventEmitter.
Avertissement concernant les plateformes
Pour le moment, seuls macOS et Windows sont supportés. Il n'y a donc aucune prise en charge de l'auto-update sur Linux, et recommandé d'utiliser le gestionnaire de paquets de votre distribution afin de mettre à jour votre application.
En outre, il y a quelques différences subtiles sur chaque plateforme :
macOS
Sur macOS, le module autoUpdater
repose sur Squirrel.Mac, ce qui signifie que vous n'avez pas besoin d'une installation spécifique pour le faire fonctionner. Pour les besoins du côté serveur, vous pouvez lire le support du serveur. Note that App Transport Security (ATS) applies to all requests made as part of the update process. Les applications qui ont besoin de désactiver l'ATS peuvent ajouter la clé NSAllowsArbitraryLoads
à leur fichier plist.
[!IMPORTANT] Your application must be signed for automatic updates on macOS. C'est un pré-requis de
Squirrel.Mac
.
Windows
On Windows, you have to install your app into a user's machine before you can use the autoUpdater
, so it is recommended that you use electron-winstaller or Electron Forge's Squirrel.Windows maker to generate a Windows installer.
Apps built with Squirrel.Windows will trigger custom launch events that must be handled by your Electron application to ensure proper setup and teardown.
Squirrel.Windows apps will launch with the --squirrel-firstrun
argument immediately after installation. During this time, Squirrel.Windows will obtain a file lock on your app, and autoUpdater
requests will fail until the lock is released. In practice, this means that you won't be able to check for updates on first launch for the first few seconds. You can work around this by not checking for updates when process.argv
contains the --squirrel-firstrun
flag or by setting a 10-second timeout on your update checks (see electron/electron#7155 for more information).
The installer generated with Squirrel.Windows will create a shortcut icon with an Application User Model ID in the format of com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE
, examples are com.squirrel.slack.Slack
and com.squirrel.code.Code
. Vous devez utiliser pour votre application le même ID qu'avec l'API app.setAppUserModelId
, sinon Windows ne sera pas en mesure d'épingler correctement votre application dans la barre des tâches.
Événements
L'objet autoUpdater
émet les événements suivants :
Événement : 'error'
Retourne :
error
Error
Émis lorsqu’il y a une erreur pendant la mise à jour.
Événement : 'checking-for-update'
Emitted when checking for an available update has started.
Événement : 'update-available'
Émis lorsqu'une mise à jour est disponible. La mise à jour est téléchargée automatiquement.
Événement : 'update-not-available'
Émis quand il n’y a aucune mise à jour disponible.
Événement : 'update-downloaded'
Retourne :
event
EventreleaseNotes
stringreleaseName
stringreleaseDate
DateupdateURL
string
Émis lorsqu'une mise à jour a été téléchargée.
Sur Windows, seulement releaseName
est disponible.
[!NOTE] It is not strictly necessary to handle this event. A successfully downloaded update will still be applied the next time the application starts.
Événement : 'before-quit-for-update'
Cet événement est émis dès qu'un utilisateur appelle quitAndInstall()
.
Quand cette API est appelée, l'événement before-quit
n'est pas émis tant que toutes les fenêtres ne sont pas fermées. Ainsi vous devrez écouter cet évènement si vous voulez effectuer des actions avant que les fenêtres ne soient fermées et qu'un processus est en train d'être arrêté, et écoutant aussi before-quit
.
Méthodes
L'objet autoUpdater
dispose des méthodes suivantes :
autoUpdater.setFeedURL(options)
- Objet
options
url
stringheaders
Record<string, string> (optional) macOS - HTTP request headers.serverType
string (facultatif) macOS - Soitjson
oudefault
, voir le README Squirrel.Mac pour plus d’informations.
Définit l'url
et initialise l'auto updater.
autoUpdater.getFeedURL()
Retourne string
- L'URL du flux de mise à jour actuel.
autoUpdater.checkForUpdates()
Demande au serveur s'il y a une mise à jour disponible. Vous devez appeler setFeedURL
avant d'utiliser cette API.
[!NOTE] If an update is available it will be downloaded automatically. L'appel à
autoUpdater.checkForUpdates()
deux fois téléchargera la mise à jour deux fois.
autoUpdater.quitAndInstall()
Redémarre l'application et installe la mise à jour après son téléchargement. Ne doit être apellé qu'une fois update-downloaded
emis.
Derrière l'appel de autoUpdater.quitAndInstall()
fermera toutes les applications windows en premier, appellera automatiquement app.quit()
après que toutes les fenêtres aient été fermées.
[!NOTE] It is not strictly necessary to call this function to apply an update, as a successfully downloaded update will always be applied the next time the application starts.