返回知识库

桌面软件 · 打包与分发

自动更新Auto Update

桌面软件不会刷新就变新:要在第一版就内置自动更新——启动检查、后台下载、提示重启;更新包也要签名,否则会被拒绝安装。

先发版:v1.1 修好了崩溃,用户电脑上会变吗

三个用户装着 v1.0,导出时会崩溃。你发布了 v1.1——看每台电脑右上角的版本号怎么走。先不勾任何东西试一次。

GitHub Releaseslatest:v1.0
  • 小王的 MacBookv1.0

    正在用 v1.0

  • 小李的 Windowsv1.0

    正在用 v1.0

  • 小张的 MacBookv1.0

    正在用 v1.0

先不勾任何东西,直接点「发布 v1.1」,看用户电脑会不会变。

知识点:更新器要先住进用户电脑

三台电脑上的版本号已经演过,这里只做命名。

  • 网页刷新就是新版;桌面软件不会。负责升级的代码必须已经在用户手上的版本里——所以第一版就要内置。
  • 标准三步:启动时检查发布源 → 后台下载 → 提示「重启以更新」;用户可以推迟,退出时再装。
  • 更新包也要签名;签名不对时更新器会拒绝安装,旧版照常可用——这是保护,不是故障。
  • 没联网、推迟的用户会晚到;发坏了没有「回滚按钮」,只能再发一个修复版本。

什么时候用、怎么用

只要应用会发给别人装,就从 v1.0 开始做。

  • 信号:要分发给用户的任何桌面应用;尤其是会频繁修 bug 的早期版本。
  • 不适用:只上架应用商店时,更新由商店负责;只给自己用的小工具可以手动重装。
  1. 指令里写明:v1.0 接入自动更新(如 electron-updater),发布源用 GitHub Releases 或自己的服务器。
  2. 要求:启动时检查、后台下载、提示重启可推迟;失败只记日志,不影响使用。
  3. 验收:装 v1.0 → 发布 v1.1 → 看是否收到提示、重启后版本号变了。

正反例:同一个导出崩溃的修复

修复一样,差别只在 v1.0 有没有带更新器。

正例v1.0 就带更新器

发布 v1.1 后,用户第二天打开就看到「重启以更新」,一周内大部分人都修好了。

反例「更新功能以后再加」

v1.1 发了,但 v1.0 不会检查;只能群发消息让大家去官网重新下载,很多人一直停在会崩溃的旧版。

快速自测

v1.0 没带自动更新,你在 v1.1 里加上了。已经装了 v1.0 的用户会自动升到 v1.1 吗?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。