autoUpdater
Enable apps to automatically update themselves.
Proceso: principal
See also: A detailed guide about how to implement updates in your application.
autoUpdater
is an EventEmitter.
Noticias de la plataforma
Actualmente, sólo macOS y Windows son soportados. No hay soporte para auto actualizaciones en Linux, por lo que es recomendable que use el gestor de paquetes de la distribución para actualizar su aplicación.
Adicionalmente, hay algunas diferencias sutiles en cada plataforma:
macOS
En macOS, el módulo autoUpdater
está construido sobre Squirrel.Mac, lo que significa que no necesita ninguna configuración especial para que funcione. Para los requisitos de servidor, puede leer Soporte de servidor. Note that App Transport Security (ATS) applies to all requests made as part of the update process. Aplicaciones que necesitan para desactivar ATS pueden agregar la clave de NSAllowsArbitraryLoads
a su .plist de su aplicación.
Nota: Su aplicación debe ser firmada para actualizaciones automáticas en macOS. Este es un requerimiento 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
. Tu debes usar el mismo ID de tu aplicación con app.setAppUserModelId
API, de lo contrario Windows no podría ejecutarlo correctamente en la barra de tareas.
Eventos
El objeto app
emite los siguientes eventos:
Evento: "error"
Devuelve:
error
Error
Aparece cuando hay un error al actualizar.
Evento: "comprobar si hay actualizaciones"
Aparece al comprobar si una actualización ya ha empezado.
Evento: "actualización disponible"
Emitido cuando hay una actualización disponible. La actualización es descargada automáticamente.
Evento: 'update-not-available'
Aparece cuando no hay una actualización disponible.
Evento: "actualización descargada"
Devuelve:
event
releaseNotes
stringreleaseName
stringreleaseDate
DateupdateURL
string
Aparece cuando se ha descargado una actualización.
Solo esta disponible en Windows releaseName
.
Nota: No es estrictamente necesario manejar este evento. Una actualización descargada con éxito se aplicará la próxima vez que la aplicación inicie.
Evento: 'before-quit-for-update'
Este evento se ejecuta luego que un usuario llama al método: quitAndInstall()
.
Cuando se hace el llamado a la API, el evento before-quit
no se ejecuta hasta que todas las ventanas estén cerradas. Como resultado usted debe escuchar a este evento si desea realizar acciones antes de que las ventanas sean cerradas, mientras el proceso está finalizando, así como también escuchar al proceso: before-quit
.
Métodos
El objeto autoUpdater
tiene los siguientes métodos:
autoUpdater.setFeedURL(options)
Configura el url
e inicializa la actualización automática.
autoUpdater.getFeedURL()
Devuelve string
- URL actual para la actualización.
autoUpdater.checkForUpdates()
Pregunta al servidor si hay una actualización. Debes llamar a setFeedURL
antes de usar esta API.
Note: If an update is available it will be downloaded automatically. Calling autoUpdater.checkForUpdates()
twice will download the update two times.
autoUpdater.quitAndInstall()
Reinicia la aplicación e instala la actualización después que esta ha sido descargada. Sólo debería llamarse después de que update-downloaded
ha sido emitido.
Llamar a autoUpdater.quitAndInstall()
bajo la capucha cerrará todas las ventanas de la aplicación, y llamará automáticamente a app.quit()
después de que se hayan cerrado todas las ventanas.
Note: No es estrictamente necesario llamar esta función para aplicar una actualización, como una actualización fue descargada con éxito siempre será actualizada la próxima vez que la aplicación inicie.