阿里云oss搭建electron应用更新服务
发布时间:
更新时间:
更新时间:
其实就是想给 electron 应用加个自动更新功能,但网上搜索的到的涉及私有部署的方法都比较麻烦,于是做研究下,这个比较适合在内部或者一定群体内使用,若是普通用户最好加上 ui 和自主检查更新。
其实阿里云 oss 并不存在搭建问题,只要有公开读的一个目录即可,因为不知道该写个什么名字(doge)
以下只对 win 系统实践过。
需求/方案
- electron 应用自动更新
- 私有部署,未托管在 github 等公开仓库
- 没有公开服务,只有阿里云 oss 可用
- 打包工具是 electron-forge
更新流程
- 开发者
- 打包发布后,将两个文件上传到 oss 上即可(将文件拖拽到 ossbrowser 上)
- 用户
- 每次打开应用后会在后台检查更新,若有更新则自动下载,若 app 在使用中弹出是否要马上更新的确认框,若马上更新则关闭后重新打开,若稍后更新,在程序关闭后更新,下次打开就是新的版本
前置条件
- 已安装 electron-forge
- 有公开读的阿里云 oss,猜测公开的云存储可能都行。
- 只有发布版本才支持更新(非 package 打包的绿色版本)
- mac 上好像得签名才行,后续有时间再确认下
改造过程
只修改 main.js 即可
electron-forge 相关调整,若已经处理过的就跳过,一度怀疑为啥官方推荐这个,个人认为 electron-builder 比这个好用。
使用官方自带的更新功能 auto-updater
1 |
|
调整思路
electron-forge 官方的理念是无感安装更新,但更新不可控多少有点别扭,尤其对普通用户来说,所以改进思路大概是:
- 用户在页面上点击检查更新(这时需要渲染进程向主进程发送消息)
- 若有更新,用户确认马上更新后,显示下载进度条,下载完毕后自动关闭并安装再重启(这时需要绑定相关事件,将事件信息比如错误信息,是否有新版本,下载进度等传回渲染进程并显示在页面上。)
请吃小笼包
支付宝 | Alipay


微信 | Wechat

