将 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
参数为例)。
我需要支持每个用户(或组)的特殊版本,并且我希望每个用户仅在适合他时(通过后端的某种逻辑)自动更新到新的可用版本。
我试图通过使用 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 withcurrentChannel = 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
参数为例)。