autoUpdater
使应用程序能够自动更新
进程:主进程
另见: 在应用程序中如何实现更新的详细指南.
autoUpdater
是一个EventEmitter.
跨平台提醒
目前只支持 macOS 和 Windows 版本。 在 Linux 上没有内置的自动更新程序,因此建议使用发行版包管理器来更新您的应用程序。
此外,每个平台都有一些细微的差别:
macOS
在macOS上, autoUpdater
模块建立在 Squirrel.Mac上,这意味着你不需要任何特殊的设置来使它工作。 对于服务器端要求, 你可以阅读 Server Support. Note that App Transport Security (ATS) applies to all requests made as part of the update process. 如需禁用ATS的应用程序可以在其应用程序的plist中添加 NSAllowsArbitraryLoads
属性。
注意: 在 macOS 上,您的应用程序必须得到签名后方可自动更新。 这是 Squirrel.Mac
的要求。
Windows
在Windows上,您必须先将应用程序安装到用户的计算机中,然后才能使用autoUpdater
。因此建议您使用electron-winstaller、Electron Forge或者grunt-electron-installer包来生成Windows安装程序。
使用electron-winstaller或Electron Forge时,请确保在应用程序第一次运行时不要尝试更新(还请参阅此问题以获取更多信息)。 还建议使用 electron-squirrel-startup 来创建应用程序的桌面快捷方式。
使用Squirrel生成的安装程序将以 com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE
的格式创建一个带有 Application User Model ID 的快捷图标,例子是 com.squirrel.slack.Slack
和 com.squirrel.code.Code
。 你应该在自己的应用中使用 app.setAppUserModelId
API 方法设置相同的 API和ID,不然 Windows 将不能正确地把你的应用固定在任务栏上。
类似 Squirrel.Mac,Windows 可以在 S3 或其他静态文件主机上托管更新。 你可以阅读 Squirrel.Windows的文档来获得更多关于 Squirrel.Windows 是如何工作的信息。