将 Electron 应用程序自动更新到特定(非最新)版本

Auto-update Electron app to a specific (non-latest) version

我需要支持每个用户(或组)的特殊版本,并且我希望每个用户仅在适合他时(通过后端的某种逻辑)自动更新到新的可用版本。 我试图通过使用 electron-builder 的 electron-updater module, and also by using Electron's autoUpdater 内置模块来做到这一点,但似乎在调用 autoUpdater.checkForUpdates.

时两者总是获取最新版本

我看过deploying my own update server的时候,有些(比如nuts)支持下载url特定版本。 如使用 nuts

所述

Specific version for detected platform: http://download.myapp.com/download/1.1.0

但似乎不支持使用 autoUpdater 在应用程序本身中请求特定版本。

总结一下:我怎样才能自动更新到特定版本而不是最新版本?

我的解决方案是 channels

appUpdater.channel (getter and setter)

Define the channel which the Auto-Updater will follow (see the auto-update with channels tutorial) using appUpdater.channel = 'beta' or get the current channel with currentChannel = appUpdater.channel.

请注意,使用 GitHub 作为提供商时(目前)不支持频道,如 electron-builder autoUpdate documentation:

中所述

channel String - Get the update channel. Not applicable for GitHub. Doesn’t return channel from the update configuration, only if was previously set.

您可以将频道名称设置为任何名称,甚至可以动态地(如果需要)指导您的用户从该频道中提取更新。

您还可以手动编辑 {your-channel-name}.latest 文件并添加参数以帮助您确定当前 "asking for update" 用户是否应该使用特定版本(在 update-available 事件中updateInfo参数为例)。