autoUpdater
Habilita aplicações a se atualizarem automaticamente.
Processo: Main
See also: A detailed guide about how to implement updates in your application.
autoUpdater
is an EventEmitter.
Avisos de plataforma
Atualmente, apenas o macOS e o Windows são suportados. Não há suporte nativo para o atualizador automático no Linux - portanto, recomendamos usar o gerenciador de pacotes da distribuição para atualizar seu app.
Além disso, existem algumas diferenças sutis em cada plataforma:
macOS
No macOS, o módulo autoUpdater
é construído em cima do Squirrel.Mac, ou seja, você não precisa de nenhuma configuração especial para que funcione. Para os requisitos do lado do servidor, você pode ler o Suporte do servidor. Note that App Transport Security (ATS) applies to all requests made as part of the update process. Aplicações que precisam desativar o ATS podem adicionar a chave NSAllowsArbitraryLoads
no plist de sua aplicação.
Nota: Seu aplicativo precisa estar assinado para que seja automaticamente atualizado no macOS. Isto é um requisito do 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
. Você deve usar o mesmo ID para sua aplicação com a API app.setAppUserModelId
, caso contrário, o Windows não será capaz de fixar sua aplicação corretamente na barra de tarefas.
Eventos
O objeto autoUpdater
emite os seguintes eventos:
Evento: 'error'
Retorna:
- Erro
error
Emitido quando há um erro durante a atualização.
Evento: 'checking-for-update'
Emitido ao verificar se uma atualização começou.
Evento: 'update-available'
Emitido quando houver uma atualização disponível. A atualização é baixada automaticamente.
Evento: 'update-not-available'
Emitido quando não há atualização disponível.
Evento: 'update-downloaded'
Retorna:
event
Event- string
releaseNotes
- string
releaseName
- Data
releaseDate
- string
updateURL
Emitido quando uma atualização foi baixada.
No Windows apenas o releaseName
está disponível.
Nota: Não é estritamente necessário tratar este evento. Uma atualização baixada com sucesso ainda será aplicada na próxima vez que o aplicativo iniciar.
Evento: 'before-quit-for-update'
Este evento é emitido depois de um usuário chamar quitAndInstall()
.
Quando esta API é chamada, o evento before-quit
não é emitido antes de todas as janelas serem fechadas. Como resultado, você deve ouvir este evento se você deseja executar ações antes das janelas serem fechadas enquanto um processo é encerrado, Além de ouvir before-quit
.
Métodos
O objeto autoUpdater
possui os seguintes métodos:
autoUpdater.setFeedURL(options)
Define a url
e inicializa a atualização automática.
autoUpdater.getFeedURL()
Returns string
- The current update feed URL.
autoUpdater.checkForUpdates()
Pergunta para o servidor se há alguma atualização. Você precisa chamar o 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 o aplicativo e instala a atualização após ela ter sido baixada. Deve ser chamado apenas após o evento update-downloaded
ter sido emitido.
Sob o capô chamando autoUpdater.quitAndInstall()
fechará todos os aplicativos janelas primeiro, e automaticamente chamar app.quit()
depois de todas as janelas foram Fechado.
Nota: Não é estritamente necessário para lidar com este evento. Uma atualização baixada com sucesso ainda será aplicada na próxima vez que o aplicativo for iniciado.