Автоматическое обновление до Electron

Я ищу развертывание функции автоматического обновления для установки Electron, которая у меня есть, однако мне трудно найти какие-либо ресурсы в Интернете.

Я создал самодостаточное приложение, использующее Adobe Air, и, казалось, было намного проще писать код обновления, который эффективно проверял URL-адрес и автоматически загружал и устанавливал обновление в Windows и MAC OSX.

В настоящее время я использую electron-boilerplate для облегчения сборки.

У меня есть несколько вопросов:

  • Как отладить функцию автоматического обновления? Я устанавливаю локальное соединение и проверяю его с помощью локального сервера Node или могу ли я использовать любой веб-сервер?
  • С точки зрения подписания приложения я только ищу, чтобы запускать приложения на MAC OSX и, в частности, на Windows. Должен ли я подписывать приложения для запуска автоматических обновлений? (Мне удалось сделать это с помощью Adobe Air, используя локальный сертификат.
  • Есть ли хорошие ресурсы, которые подробно описывают, как реализовать функцию автоматического обновления? Поскольку мне трудно найти хорошую документацию о том, как это сделать.

Ответ 1

Я также новичок в Electron, но я думаю, что нет простого автообновления с электронно-шаблонного (что я также использую). Электронный автообновление использует утилиту Squirrel.Windows, которую также необходимо реализовать в своем решении, чтобы использовать ее.

В настоящее время я пытаюсь использовать это:

И больше информации можно найти здесь:

EDIT: я только что открыл проект, чтобы попробовать его некоторое время, и он выглядит так, как работает. Это довольно просто. Это части из моего gulpfile.

В текущей конфигурации я использую электрон-упаковщик для создания пакета.

var packager = require('electron-packager')
var createPackage = function () {
    var deferred = Q.defer();


    packager({
        //OPTIONS
    }, function done(err, appPath) {
        if (err) {
            gulpUtil.log(err);
        }

        deferred.resolve();
    });

    return deferred.promise;
};

Затем я создаю установщик с электронно-инсталлятор-белыми окнами.

var squirrelBuilder = require('electron-installer-squirrel-windows');
var createInstaller = function () {
    var deferred = Q.defer();

squirrelBuilder({
// OPTIONS
}, function (err) {
        if (err)
            gulpUtil.log(err);

        deferred.resolve();
    });

    return deferred.promise;
}

Также вам нужно добавить код для Белки на ваш электронный фон/основной код. Я использовал шаблонный запуск с электронным белком.

if(require('electron-squirrel-startup')) return;

Все это описано в документации по электронному инсталлятору-squirrel-windows npm, упомянутой выше. Похоже, немного документации достаточно, чтобы начать. Теперь я работаю над электронным брендингом через Squirrel и создаю соответствующие сценарии gulp для автоматизации.

Ответ 3

Я последовал за этим учебником и получил его работу с моим электронным приложением, хотя он должен быть подписан для работы, поэтому вам понадобится:

 certificateFile: './path/to/cert.pfx'

В конфигурации задачи.

и

"build": {
  "win": {
    "certificateFile": "./path/to/cert.pfx",
    "certificatePassword": "password"
  }
},

В package.json

Ответ 4

Есть ли хорошие ресурсы, которые подробно описывают, как реализовать функцию автоматического обновления? Поскольку у меня возникают трудности с поиском хорошей документации о том, как это сделать.

Вам не нужно реализовывать это самостоятельно. Вы можете использовать предоставленный autoUpdater от Electron и просто установить feedUrl. Вам нужен сервер, который предоставляет информацию об обновлении, соответствующую протоколу Squirrel.

Есть несколько автономных (https://electronjs.org/docs/tutorial/updates#deploying-an-update-server) или размещенный сервис, такой как https://www.update.rocks.