新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Tauri】Tauri 2.x+Vue自动更新教程对接后端接口更新

发布时间:2026/11/15 6:17:44来源:尧图网络
【Tauri】Tauri 2.x+Vue自动更新教程对接后端接口更新
在使用 Tauri 框架进行桌面应用开发时密钥的生成、签名以及更新功能的配置是不可或缺的步骤。Tauri 提供了强大的更新机制可以让开发者轻松实现自动更新功能。本文将详细介绍如何生成密钥、配置更新功能、进行项目打包并且确保密钥与更新功能的正确对接。文章目录生成密钥key项目配置文件项目打包总结生成密钥key在 Tauri 项目中密钥用于确保应用更新时的安全性。首先我们需要生成两个密钥公钥和私钥。在项目根目录下执行以下命令yarntauri signer generate-w~/.tauri/box.key这条命令会生成两个密钥box.key和box.key.pub。box.key是私钥box.key.pub是公钥。私钥用于签名操作而公钥用于验证签名。项目配置文件配置文件在项目跟目录下srt-tarui/tauri.conf.json打开刚生成box.key.pub复制全部内容到pubkey字段。在项目的根目录下找到 Tauri 配置文件tauri.conf.json并进行配置。在该文件中你需要将公钥box.key.pub的内容复制到updater配置的pubkey字段中。具体的配置如下{ updater: { active: true, endpoints: [ https://xxxxxx.xxxx/xxx/xxx/ //API验证信息地址 ], dialog: false, // 原生更新弹窗 可以是ture 用默认的 pubkey: YOUR_UPDATER_SIGNATURE_PUBKEY } }这里对接的API格式如下{version:2.0.0,notes:更新内容,pub_date:2025-02-21T15:07:49Z,platforms:{darwin-x86_64:{signature:这里是密钥box.key的内容,url:https://your-server.com/app_v2.0.0.app.tar.gz},windows-x86_64:{signature:这里是密钥box.key的内容,url:https://your-server.com/app_v2.0.0.nsis.zip},linux-x86_64:{signature:这里是密钥box.key的内容,url:https://your-server.com/app_v2.0.0.linux.tar.gz}}}基于python构建的API接口完整代码如下这里的请求方法必须是get。并且这里需要根据打包的结果配置signature 密钥和url 下载地址。classVersionSerializer(CustomModelSerializer):pub_dateserializers.DateTimeField(format%Y-%m-%dT%H:%M:%SZ)# 格式化 pub_date 为 ISO 8601 格式platformsserializers.SerializerMethodField()classMeta:modelVersion fields[version,notes,pub_date,platforms]defget_platforms(self,obj): 根据模型数据构造 platforms 字段 platforms_data{darwin-x86_64:{signature:Content signature generated by Tauri key,url:https://your-server.com/app_v2.0.0.app.tar.gz},windows-x86_64:{signature:Content signature generated by Tauri key,url:https://your-server.com/bapp_v2.0.0_x64-setup.nsis.zip},linux-x86_64:{signature:Some signature for Linux,url:https://your-server.com/app_v2.0.0.linux.tar.gz}}returnplatforms_dataclassCheckVersionAPIView(APIView):permission_classes[AllowAny]defget(self,request,*args,**kwargs):# 获取 Version 模型的最后一条记录try:latest_versionVersion.objects.latest(id)# 按id降序获取最后一条记录exceptVersion.DoesNotExist:returnResponse({detail:No version data found.},status404)# 使用序列化器将数据转换为 JSON 格式serializerVersionSerializer(latest_version)dataserializer.data# 根据需求调整返回格式确保返回的数据符合预期的格式formatted_response{version:data[version],notes:data[notes],pub_date:data[pub_date],platforms:data[platforms]}returnResponse(formatted_response)项目打包配置打包的系统环境变量。新建系统变量TAURI_PRIVATE_KEY变量值是密钥文件ai_tools.key的内容。这里可能需要重启机器才能打包成功。执行打包命令。npmrun build:prod在打包时候会提示输入密码这个密码就是创建密钥时候的密码。这里如果出现下面的情况是密钥变化了环境变量不匹配必须要重启机器了。Warn The updater secret keyfromTAURI_PRIVATE_KEY doesnotmatchthe public key definedintauri.conf.jsontauriupdaterpubkey.If you arenotrotating keys,this means your configurationiswrongandwont be accepted at runtime.Warn The updater secret keyfromTAURI_PRIVATE_KEY doesnotmatchthe public key definedintauri.conf.jsontauriupdaterpubkey.If you arenotrotating keys,this means your configurationiswrongandwont be accepted at runtime.打包成功之后会提示这里红色的路径是安装包的位置。配置signature 密钥打开目录下的sig文件替换接口中的signature字段。配置url 下载地址开启Tauri更新功能修改 tauri.conf.json{ updater: { active: true, endpoints: [https://api.xxx.datayang.cn/api/Config/xxx/], //这里我对接的后端服务器这里注意一下后端返回格式必须固定并且不做任何 限制下面我会展示返回样式 dialog: false, // 原生更新弹窗 可以是ture 用默认的 pubkey: YOUR_UPDATER_SIGNATURE_PUBKEY // 通过tauri signer生成 稍后我会写怎么生成这个 } }后端返回格式参考{ version: 2.0.0, notes: 更新内容, pub_date: 2025-02-21T15:07:49Z, platforms: { darwin-x86_64: { signature: Content signature generated by Tauri key, url: https://your-server.com/app_v2.0.0.app.tar.gz }, windows-x86_64: { signature: dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVThYTUtVS29XVU56QlJ4MEFTdzFQdEQ5aEU0MUlhRkFXVnJNZHpyK1FvPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzQwMzgxMzA3CWZpbGU6Ym94XzIuMC4wX3g2NC1zZXR1cC5uc2lzLnppcApNL2RTNTdTVjkrN3FsV2p2OGFBRG9kb0p5SzBMQlN5ZEtDbWgzMG1UeE1jdFJCMk1IaEQwbitYcm5XZ29TZnlzQjBPNXl5QkFZZ0puNWtTOStkNEdDZz09Cg, url: https://api.aitools.cn/media/box_2.0.0_x64-setup.nsis.zip }, linux-x86_64: { signature: Some signature for Linux, url: https://your-server.com/app_v2.0.0.linux.tar.gz } } }配置本地签名输入命令npm tauri signer generate -w ~/.tauri/myapp.keyyarn tauri signer generate-w~/.tauri/box.key在tauri.conf.json配置文件中productName项例如设为box对应的mapp命令应为pm tauri signer generate -w ~/.tauri/box.key。执行时需输入两次密码完成后会在项目根目录生成公钥和私钥密码本如下图所示。把 box.key.pub 里面内容给tauri.conf.json里面配置 pubkey如果之前项目已经配置本地签名 可以跳过以上步骤完成之后配置本地系统环境变量这个必须不然程序打包后报错变量名 TAURI_PRIVATE_KEY 变量值 之前生成的 文件 box.key里面内容粘贴打包程序在打包前请先更新tauri.conf.json文件中的版本号。将version: 2.0.0提升一级确保高于之前发布的网络版本。然后执行命令npm run tauri build在打包前请先更新tauri.conf.json文件中的版本号。将version: 2.0.0提升一级确保高于之前发布的网络版本。然后执行命令npm run tauri build请输入之前设置密码该密码与配置密钥时使用的相同需输入两次验证请输入之前设置密码该密码与配置密钥时使用的相同需输入两次验证。已生成两个安装包任选其一即可发送给后端。需要提供的文件box.key和 任一安装包文件。文件路径例如G:\MyGitProject\MyTools\MyToolsApp\WebDeskWeb-Tauri_vue3\src-tauri\target\release\bundle\nsis\box_2.0.0_x64-setup.nsis.zip.sig已生成两个安装包任选其一即可发送给后端。总结通过这篇文章你已经学会了如何在 Tauri 项目中生成密钥、配置更新功能并成功打包应用程序。整个过程包括了私钥和公钥的生成、配置更新功能的 API 返回格式、Python 后端实现以及如何配置 Tauri 打包时的密钥环境变量。通过这些步骤可以轻松实现桌面应用的自动更新功能让应用更加高效、安全地进行版本更新。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/15 4:54:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/15 4:06:36

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉