当前位置:首页 > 技术分析 > 正文内容

分享下我近期研究,可能网上没有的 Electron 的自动更新机制

ruisui884个月前 (03-01)技术分析16

Electron的自动更新机制并不算复杂,但团队内似乎没有相关文档,正好笔者搞明白了,就简单说明一下,以MacOS的arm平台为例说明,具体代码可以参考Postcat的相关配置,本篇文章就不以具体代码举例了。

这里是以Mac arm平台为例,对于不同平台,包名不一样、更新文件名不一样、压缩包后缀不一样,但总体上都是围绕这三样东西。

配置了自动更新后,构建后,会有以下几个关键文件:

  • 安装包:Postcat-1.0.0-arm64.dmg
  • 更新/指引文件:latest-mac.yml
  • 压缩包:Postcat-1.0.0-arm64-mac.zip


三者是对应的,要顺利完成自动更新,三者缺一不可。当运行Postcat时,应用程序会尝试访问更新文件,从更新文件中获取最新的版本号和一个相对路径,相对路径指向.zip压缩包。


如果更新文件latest.yml中的最新版本号和当前运行的应用程序版本号一致,则不会再去访问压缩包。


如果不一致,则回去尝试访问压缩包,去将压缩包下载到本地,自动进行更新(更新过程是自动的,笔者也不了解内部运行的机理)。


待下一次重启应用时,运行的即是最新的应用程序,大致流程模型如下:



由此可知,latest.yml文件的位置是相当重要的,它必须始终指向最新的压缩包,因为在每一次发布新版本后,需要将latest.yml文件替换掉。关于这一点,Github平台已经帮我们做得很好了,但如果你的安装包需要发布在其他平台上,这一步操作需要加入到标准流程中。


当然,由于我们有自己的需求,因此在中间加了一层Nginx,Electron关于自动更新对外的访问,都会经过Nginx,由此变成:


需要注意的是,更新文件latest.yml中的路径是相对路径,而Electron访问压缩包时走的是http协议,绝对路径,因此当自动更新出现问题时,可以查看latest.yml中的相对路径是否正确。


这个机制我有应用到目前我参与的开源项目中,Postcat 开源的 API 管理工具,纯国产,免费的,主打插件生态,适合中小团队以及个人开发者使用,有 API 相关的核心功能。


目前在 Github 上 1.3k star,如果你觉得这个项目还不错的话,不妨点个 star 支持一下~

Github:

https://github.com/Postcatlab/postcat


Demo:
https://postcat.com/zh/?utm_source=tt&utm_campaign=gf&utm_content=Electron

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2380.html

分享给朋友:

“分享下我近期研究,可能网上没有的 Electron 的自动更新机制” 的相关文章

费用管理解决企业财务难题

目前来讲,国内大多数企业费用预算管理都是由财务部门“一手包办”,与之相适应的是费用管理的信息化手段是通过财务管理软件来实现,仅仅局限于财务预算管理层面,从而使预算管理处于“预而不算”的状态,表现为信息滞后、执行者在执行预算过程中处于被动地位、可控性差、考核难以奏效。而且由于对各部门预算缺乏约束力,员...

Vue3 中有哪些值得深究的知识点?

众所周知,前端技术一直更新很快,这不 vue3 也问世这么久了,今天就来给大家分享下vue3中值得注意的知识点。喜欢的话建议收藏,点个关注!1、createAppvue2 和 vue3 在创建实例时,有很大的区别,具体对比如下://Vue 2 Vue.use({ router, store,...

Python 幕后:Python导入import的工作原理

更多互联网精彩资讯、工作效率提升关注【飞鱼在浪屿】(日更新)Python 最容易被误解的方面其中之一是import。Python 导入系统不仅看起来很复杂。因此,即使文档非常好,它也不能让您全面了解正在发生的事情。唯一方法是研究 Python 执行 import 语句时幕后发生的事情。注意:在这篇文...

编码 10000 个小时后,开发者悟了:“不要急于发布!”

【CSDN 编者按】在软件开发的道路上,时间是最好的老师。根据“一万小时定律”,要成为某个领域的专家,通常需要大约一万小时的刻意练习。本文作者身为一名程序员,也经历了一万小时的编程,最终悟出了一个道理:慢即是快,重视架构设计和代码质量,确保每一行代码都经得起时间的考验。作者 | Sotiris Ko...

15款测试html5响应式的在线工具

手机、平板灯手持设备的增多,网站要顺应变化,就必须要做响应式开发,响应式网站最大的特点在于可以在不同设备下呈现不同的布局,是基于html5+css3技术,目前越来越多的网站开始采用了响应式设计,而下面15款工具可以方便测试你的html5响应式效果。Responsinatorhttp://www.re...

全新斯柯达柯珞克Karoq深度评测:大众替代品

“斯柯达柯珞克是一款出色的全能家庭 SUV,具有许多有用的功能”价格36,605 英镑- 49,190 英镑优点方便的 VarioFlex 后排座椅非常适合家庭入住驾驶乐趣缺点保修期短保守的内饰性格比Yeti少结论——斯柯达柯珞克是一辆好车吗?斯柯达柯珞克是在辉煌的七座 斯柯达柯迪亚克之后推出的,因...