ElectronJs — Configurando auto-update

Automatizando atualizações: Guia passo a passo para configurar AutoUpdate em aplicativos Electron

ElectronJs — Configurando auto-update

Olá Gente!

No tutorial anterior aprendemos a compilar nossa aplicação criada em ElectronJs utilizando o Github Action e criar um release com a compilação.

Hoje iremos configurar para que nossa aplicação atualize automaticamente sempre que um novo release for criado.

Em minha aplicação utilizo o Electron Forge para facilitar as ações, recomendo muito a utilização:

Getting Started - Electron Forge
Quickly scaffold an Electron project with a full build pipeline

Não precisamos instalar nada adicional, o próprio ElectronJs já possui os recursos para configurar o AutoUpdate.

Para identificar as novas versões iremos utilizar o https://update.electronjs.org/ que busca as versões com base nos release.

Dentro de nosso arquivo main.js carrega o “autoUpdater” e o “Notification” do repositório “electron”:

import { Notification, autoUpdater } from 'electron';

Agora iremos configurar uma função para facilitar as ações de AutoUpdate:

function setupUpdate() 
{ 
 
    const FeedUrl = 'https://update.electronjs.org/[UsuarioGit]/[RepositorioGit]/' + process.platform + '-' + process.arch + '/' + app.getVersion(); 
 
    try { 
         
        autoUpdater.setFeedURL(FeedUrl) 
         
        autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName, releaseDate, updateURL) => { 
 
            const dialogOpts = { 
            type: 'info', 
            buttons: ['Reiniciar Agora', 'Reiniciar Depois'], 
            title: 'Atualização Automática', 
            message: process.platform === 'win32' ? releaseNotes : releaseName, 
            detail: 'Uma nova versão do Aplicativo foi Instalada. Reinicie o Aplicativo para iniciar a nova versão' 
            }; 
 
            dialog.showMessageBox(dialogOpts).then(({ response }) => { 
 
                if(response === 0) 
                { 
 
                    autoUpdater.quitAndInstall(); 
 
                } 
 
            }) 
        }); 
 
        autoUpdater.checkForUpdates() 
 
        setInterval(() => {  
             
            autoUpdater.checkForUpdates()  
         
        }, ( 1 * 60 * 60 * 1000 )) 
 
    }catch (err){ 
 
        // 
         
    } 
 
}

Aqui precisamos antes configurar a variável FeedUrl, que é a Url de onde serão checadas as atualizações.

Neste link:

  • [UsuarioGit]: Seu usuário do GitHub
  • [RepositorioGit]: O nome do repositório no GitHub

Podemos também alterar o tempo de checagem, no “setInterval”.

Para este exemplo, esta configurado para 1 hora:

1 * 60 * 60 * 1000

Agora iremos colocar a chamada desta função dentro do evento “ready”:

app.on('ready', () => { 
 
    setupUpdate(); 
     
});

Por hoje é isto, queridos desenvolvedores! 👩‍💼

Até logo! 👋