由于项目的更新服务很不稳定,所以想着换一个更新服务。百度一下,立马就看到了electron-updater。网上有很多关于如何使用的demo,我就跟着试了一下,发现了很多的问题,在这里做一个总结。

当然网上说过的我就不说了。。。。。。。。。。。。。。

1. 自动更新,参数名:autoDownload,文件名:AppUpdater.js
执行autoUpdate.checkForUpdate()方法后,electron-updater(以下简称eu)会开始检查版本号,然后下载服务器里面的lastest.yml文件,这个文件包含version,path,sha512/sha256三个参数。接着比较自己的版本号和version,如果相同则表示已经是最新版本,不同则会产生结果:第一种就是字符串或格式不匹配(比如你的版本号是五个数字,而服务器上的version是四个),第二种就会触发更新。默认的autoDownload=true,表示是自动下载安装包。我们需要在AppUpdater.d.ts文件中,定义一个变量,并通过autoUpdater.你的变量去访问他,并修改他的值。如图:
AppUpdater.d.ts46/47行处作如下修改

AppUpdater.js161/168行处,分别做如下修改:

对,你没有看错,应用退出时自动安装也需要做同样的处理。

2. 前面说了停止自动下载,那怎么恢复下载呢?
对,执行这个方法,就能恢复了。

3. 非electron-builder打包,生成sha512加密结果。
那么接下来,就是重点了,electron-builder在打包的过程中会生成latest.yml文件。但是,如果你用electron-packager就没得了,而自动更新下载下来的文件,如果不通过它的安全验证,就不能把文件转为能够安装的exe文件。那么该如何生成sha512加密结果呢?上代码!!!

  const crypto = require('crypto')const hash = crypto.createHash('sha512')hash.setEncoding('base64')const fs = require('fs')let file = '.\OneClickTerminal Setup 1.0.22.exe'let options = undefinedlet rs = fs.createReadStream(file, {...options,highWaterMark: 1024 * 1024})rs.on('data', (data) => {hash.update(data)})rs.on('end', () => {hash.digest()hash.end()console.log(hash.read())})

这个代码需要在node环境中执行哦!至于为什么我会知道这个加密方式,就别问了,都是泪。。。/(ㄒoㄒ)/~~

electron-updater自动更新踩坑相关推荐

  1. node.js + Electron 调用 Windows API 踩坑日记

    前排提示:深坑,建议使用 C#.C++.VB 等方式 + 本地网络传输或进程管道通信替代. TOOLS 工具 Node.js(12.18.1) Electron(此处使用 ^2.0.0,因为 cef ...

  2. Electron实现在线更新与踩坑

    前言 最近帮公司搞桌面应用,从NW.js和Electron中做选择,最后选择了Electron,没啥特别难的点,vue脚手架+vue-cli-plugin-electron-builder一把梭,记录 ...

  3. 使用 electron-builder 及 electron-updater 给项目配置自动更新

    一.说明: 本文的自动更新功能使用的项目为 electron-vue 脚手架搭建一个默认项目. 参考的文章如下: electron-vue 中文文档 electron-builder 文档 Windo ...

  4. Ubuntu的踩坑记录

    Ubuntu使用踩坑实录 由于某些原因,准备再次使用Ubuntu系统,但是由于某些原因,暂时使用双系统 安装Ubuntu 安装Ubuntu的过程参考视频链接,Ubuntu双系统我安装了几次了,只要老老 ...

  5. Electron Built-in AutoUpdater 踩坑记录

    Electron Built-in AutoUpdater 因为之前做的 electron 应用开发使用的是 electron-packager 来对应用进行打包,根据官方文档的介绍,推荐使用内置的 ...

  6. AirSim学习和踩坑记录(不定时更新)

    版权声明:本文为博主原创文章,遵循Creative Commons - Attribution-ShareAlike 4.0 International - CC BY-SA 4.0版权协议,转载请附 ...

  7. 【Electron】酷家乐客户端开发实践分享 — 软件自动更新

    作者:钟离,酷家乐PC客户端负责人 原文地址:webfe.kujiale.com/electron-au- 酷家乐客户端:下载地址 www.kujiale.com/activity/13- 文章背景: ...

  8. Android 获取短信验证码并自动填充(踩坑小米、荣耀、OPPO、华为)

    Android 获取短信验证码并自动填充(踩坑小米.荣耀.OPPO) 前言 最近弄了个短信自动填充功能,一开始觉得很简单,不就是动态注册个广播接收器去监听短信消息不就可以了吗?结果没这么简单,问题就出 ...

  9. 谷粒商城笔记+踩坑(22)——库存自动解锁。RabbitMQ延迟队列

    导航: 谷粒商城笔记+踩坑汇总篇 目录 1 业务流程,订单失败后自动回滚解锁库存 可靠消息+最终一致性方案 2[仓库服务]RabbitMQ环境准备 2.1 导入依赖 2.2 yml配置RabbitMQ ...

最新文章

  1. 【数据库】sqlite3数据库备份、导出方法汇总
  2. CONVT_NO_NUMBER
  3. memkind版本查看_QQ 20周年来啦!扫码查看你的回忆
  4. 数据结构和算法(Java)-张晨光-专题视频课程
  5. rsa 返回值 验签 失败_解析蛋糕、面包制作失败的原因
  6. bash --config command not found 报错
  7. [APEC中小企业峰会2009上]对话:经济适用男 vs 超级豪华男
  8. Node JS和MongoDB的集成简单示例
  9. 报告节选2:桌面虚拟化需重视网络和存储
  10. Delphi制作打印面签案例
  11. Meshlab模型对齐
  12. java环境变量配置_Java环境变量配置终极版
  13. LeetCode1359. 有效的快递序列数目
  14. 服务器必备工具软件推荐
  15. Google Maps在英国新增40多处建筑内部导航功能
  16. 腾讯T3亲自讲解!2021年最新Android面试点梳理,附带学习经验
  17. java控制台打印输出 中文乱码 解决办法
  18. 互联网促进全民公益时代的到来
  19. 安安猜价格聪明机器人_App Inventor-零基础Android移动应用开发
  20. 俞敏洪同济大学精彩演讲

热门文章

  1. 程序设计的三种基本结构
  2. 逐步实现一个简易的飞机大战(c++)
  3. intra-mart产品开发相关介绍资料
  4. Head Above Water
  5. 和图片有关的几个旋转属性
  6. dapper mysql_.NET Core Dapper操作mysql数据库
  7. 20145204《信息安全系统设计基础》课程总结
  8. 计算机桌面上的照片转pdf免费,如何把图片转化为pdf,图片转换pdf工具推荐
  9. 「Java工具类」pdf导出工具类java导出pdf文件工具类
  10. 3dmax软件怎么保存低版本的模型