Автоматическое обновление до 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 для автоматизации.
Ответ 2
Вы также можете использовать стандартный модуль Electro autoUpdater для OS X и мой простой порт для Windows: https://www.npmjs.com/package/electron-windows-updater
Ответ 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.