Как я могу проверить поток автообновления электронного компоновщика? - PullRequest
0 голосов
/ 23 июня 2018

Я создал приложение Electron и сейчас смотрю, как его распространять.Я пошел с электронным строителем для обработки упаковки и т. Д.

Для некоторого контекста, как веб-разработчик, я привык постоянно развертывать веб-приложения на веб-сервере, но у меня естьтрудно понять, как распространять упакованный в электрон.

В документах по электронному строительству есть краткое упоминание о тестировании автообновления:

"Обратите внимание, что для разработки / тестирования UI / UXОбновление без упаковки приложения. В корне вашего проекта должен быть файл с именем dev-app-update.yml, который соответствует вашему параметру публикации из конфига Electron-Builder (но в формате YAML) "

Но это довольно расплывчато ...

Так что у меня на самом деле два вопроса:

1.Как я на самом деле проверяю поток автообновления?

Нужно ли мне публиковать новую версию для локального запуска обновления?Кажется довольно неясным, это было бы похоже на разработку на производственном сервере.

2.Возможно ли иметь запасной вариант для неподписанного кода?

У меня еще нет сертификата для подписи кода.Таким образом, ОС / приложение заблокирует автоматическое обновление.Но я все же хочу сообщить пользователям, что доступно обновление, чтобы они могли загрузить приложение вручную.Могу ли я сделать это?(Возвращаясь к пункту 1, я бы хотел проверить этот поток)

1 Ответ

0 голосов
/ 13 апреля 2019

Я только что закончил заниматься этим.Я также хотел провести тестирование на непроизводственном сервере и избегать необходимости упаковывать мое приложение при каждой итерации.Чтобы проверить загрузку, я должен был подписать свое приложение, что замедлило процесс.Но, похоже, вам просто нужно проверить наличие обновлений.Что я думаю, вы можете сделать следующим образом ...

Я создал фиктивный репозиторий Github, а затем создал файл dev-app-update.yml, содержащий:

owner: <user or organization name>
repo: dev-auto-update-testing
provider: github

Путь, где этот файл, как ожидается, будетбыть по умолчанию в месте, к которому вы не можете получить доступ.К счастью, вы можете переопределить это так:

    if (isDev) {
      // Useful for some dev/debugging tasks, but download can
      // not be validated becuase dev app is not signed
      autoUpdater.updateConfigPath = path.join(__dirname, 'dev-app-update.yml');
    }

... этого должно быть достаточно для вашего случая - так как вам не нужны загрузки.

Если нет, вот некоторыедругие советы:

  • вы можете изменить настройку репо в настройке вашего электронного сборщика, указав на вашем фиктивном репо, а затем упаковать свое приложение.Это даст вам упакованную производственную сборку, которая будет указывать на ваш фиктивный репозиторий - так я проходил тестирование загрузки (хотя у меня есть сертификат и подписано мое приложение)
  • вы должны вызывать autoUpdate checkForUpdates(), но если checkForUpdatesAndNotify() даст вам полезное уведомление ОС, тогда вы сможете установить для autoUpdater.autoDownload значение false и получить то, что вам нужно.

Наконец, звучит, что вы можете пропустить autoUpdater, так как вы все равно не будете использовать функцию загрузки.Вместо этого вы можете использовать релизы github api , при условии, что вы используете github для размещения своего релиза.Если нет, то ваш хост должен иметь что-то подобное.Используйте это для проверки обновлений, а затем сообщите пользователю из вашего приложения (может также предоставить ему URL-адрес, по которому можно кликнуть).Если вы хотите ОС уведомления электрон имеет модуль для этого .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...