学习目标​

请注意,这是本教程的最后一步! 在这一部分,你将发布应用到 GitHub 版本中心,并将自动更新功能整合到应用代码中。

使用 update.electronjs.org​

Electron 官方在 https://update.electronjs.org 上为开源应用程序提供了免费的自动更新服务。 使用它有以下几点要求:

  • 你的应用在 macOS 或 Windows 上运行
  • 你的应用有一个公开的 GitHub 仓库
  • 应用程序需要发布到 GitHub releases 中
  • 应用程序需要完成 代码签名

至此,我们假设你已将所有代码推送到公开的 GitHub 仓库。

替代更新服务

如果您使用了其他存储库主机 (例如 GitLab 或 Bitbucket),或者如果您你的代码仓库不能公开,请参阅 更新应用程序 教程以托管您自己的 Electron 更新服务器。

发布一个 GitHub 版本​

Electron Forge 的 Publisher 插件可以自动将打包的应用程序分发到各种来源。 在本教程中,我们将演示使用 GitHub Publisher 将代码发布到 GitHub releases 中。

生成个人访问令牌

public_repo

设置 GitHub 发布者​

安装模块

devDependencies
npm install --save-dev @electron-forge/publisher-github
yarn add --dev @electron-forge/publisher-github

在 Forge 中配置发布者

PublisherGitHubConfig
module.exports = {
  publishers: [
    {
      name: '@electron-forge/publisher-github',
      config: {
        repository: {
          owner: 'github-user-name',
          name: 'github-repo-name',
        },
        prerelease: false,
        draft: true,
      },
    },
  ],
}

发布前的草案版本

请注意,你已配置 Forge 来发布你的项目作为草稿版本。 这将使您能够看到其生成的结果而无需实际发布给你的最终用户。 当你写下版本说明和并多次检查分发的工作内容后, 就可以手动在 Github 上发布你的应用.

设置身份验证 token

GITHUB_TOKEN

运行发布命令​

将 Forge 的 发布命令 添加到 npm 脚本内。

  //...
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make",
    "publish": "electron-forge publish"
  },
  //...

此命令将运行你配置的创建方法并将输出的可分发文件发布到新的 GitHub 版本。

npm run publish
yarn run publish
--arch
version

小技巧:在 GitHub Actions 中发布

.exe

检测更新程序代码

至此我们有了一个通过 GitHub 发布的功能性发布系统, 我们现在需要告诉我们的 Electron 应用来下载更新,而且是每当新版本出现时都需要更新。 Electron 应用通过 autoUpdater 模块来实现此功能, 此模块可以从更新服务源中读取信息, 并检查是否有一个新版本可供下载.

网址是 update.electronjs.org 的服务器提供了一个兼容更新源. 比如, Electron Fiddle v0.28.0 将会检查接口 https://update.electronjs.org/electron/fiddle/darwin/v0.28.0 来查看是否有新的 GitHub 版本可用.

一旦你的发布版本被推送到 GitHub, 对应的更新服务 update.electronjs.org 将会自动对接你的应用. 剩下的唯一步骤是使用 autoUpdater 模块配置源。

update-electron-app"repository"

首先,安装模块作为运行时的依赖项

npm install update-electron-app
yarn add update-electron-app

然后导入模块并在主进程中立即调用

require('update-electron-app')()

这是需要做的事情! 一旦你的应用程序被打包,它将在你发布每个新的 GitHub 版本时更新自己。

摘要

在本教程中,我们配置了 Electron Forge 的 GitHub Publisher 以将您的应用程序的可分发文件上传到 GitHub 发布。由于无法始终在平台之间生成可分发文件,如果您无权访问机器,我们建议在持续集成管道中设置构建和发布流程。

update-electron-app

如果你的应用程序不适合使用 update.electronijs.org,你应该自己部署 一个更新服务器,并配置自己的自动 autoUpdater 模块。

 你已完成!

从这里开始,您已经正式完成了我们的 Electron 教程。请随意探索我们的其余文档并祝开发愉快!如果您有任何疑问,请访问我们的社区 Discord 服务器。