electron重启后更新_Electron --- 关于自动更新的一系列折腾

这篇博客介绍了在 Electron 中实现自动更新的完整过程,包括使用 autoUpdater 模块遇到的问题,以及如何针对 Mac 和 Windows 平台自定义更新逻辑。作者分享了在 Mac 上需要代码签名的困境,以及最终如何通过执行不同平台的安装脚本来实现无缝更新。同时,还提供了一个版本控制的 JSON 文件示例和相关代码参考。
摘要由CSDN通过智能技术生成

Electron 自动更新的方法使用 Electron 自己提供的 autoUpdater 模块

使用更新服务器

自己实现自动更新逻辑

为什么说经过了一系列的折腾呢, 因为前 2 中方式都没有解决我的问题,最后我是自己实现了自动更新的逻辑

没有解决我的问题是因为我需要兼顾到 mac 平台和 Windows 平台,然而 mac 平台比较麻烦,代码需要签名

我自己亲测方式一和方式二在 mac 平台上都需要代码签名, 而签名代码需要注册苹果开发者账号,需要付年费

于是这 2 条路就走不通了

最后我决定自己实现更新的逻辑

更新逻辑分析自动触发或手动触发软件更新检查

服务器版本号大于本地版本才出现更新提示

对于更新,无非就是卸载之前的版本,安装新下载的安装包

软件的打包我选择的是 Electron Builder, 分别打成 dmg , setup.exe , app.zip

更新的时候先从服务器下载新版本

下载完成后对于安装包的安装分平台来说

Windows 下的更新Windows 下的安装包是 exe 可执行文件,安装包本身是有处理逻辑在里面的

于是我们只需要将安装包下载到临时目录,然后再软件里打开它,再退出软件,剩下的安装步骤交给用户

有一点需要注意的是,NSIS 的新安装包在安装前会自动卸载掉之前的版本,不过不会提示用户,我们可以在 nsis 脚本里加一个提示

MacOS 下的更新相比于 Windows 下的安装包, macOS 下的 dmg 安装包就没有什么逻辑了,直接打开,然后将 app 文件拖到 Applications 目录中即可完成安装

于是有 2 中方法可选

一. 挂载 dmg, 找到挂载目录,在 mac 下是 /Volumes 目录下; 删除 /Applications 下的 app, 将 /Volumes 下的 app 拷贝到 /Applications 目录下; 再卸载 dmg; 重启应用即可,该方法可实现类似无缝更新的效果

二. 和方法一一个道理,只不过不是挂载 dmg 来查找 app, 直接解压 app.zip 压缩文件即可得到 app ,在使用相同的方式覆盖即可.

软件的版本控制

可以采取一个 json 文件来记录个版本的更新记录, 这里给个参考:

[

{

"version": "1.1.0",

"force": false,

"time": "2019-09-14",

"downlo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值