tuari 配置 gitee 自动更新环境
tauri 配置 gitee 自动更新环境
本章介绍如何使用 gitee 仓库配置 tauri 的自动更新环境。
tauri 的更新器配置是内置的,比 electron 的配置要简单的多,具体配置流程可以参考官方指南 Updater。
以下内容也会提及相关配置。
本文章使用 gitee 作为示例,在国内的速度会更好,github 的配置与 gitee 类似,感兴趣的可以自行配置。
本文项目在 window 系统中配置打包,如使用其他系统的请参考官方指南配置。
新建 gitee 仓库
要实现 tauri 的自动更新环境,需要配置一个或两个仓库。根据自己的实际需求选择,如果项目代码是私有的,就需要两个仓库,一个开源用于存放项目更新信息和版本信息。
如果项目代码是开源的,建议同样使用两个仓库。
以下将使用两个仓库进行配置。
以下新建两个仓库,一个是项目代码仓库,一个是存放项目更新信息的仓库。
代码仓库: tauri-vite-demo
更新信息仓库: tauri-update-test
生成 tauri 公钥私钥
运行以下命令生成公钥密钥:
tauri signer generate -w ~/.tauri/myapp.key
# 或者
cargo tauri signer generate -w ~/.tauri/myapp.key
输入命令后,提示输入密码,如果要输入密码,请务必记住密码,否则该密钥将无法使用,无需密钥则直接回车继续。
公钥 myapp.key.pub 内容添加到 tauri.config.json > updater > pubkey 中。
私钥和密码需要添加到环境变量中。
TAURI_PRIVATE_KEY 存在私钥的路径或者内容。
TAURI_KEY_PASSWORD 存在私钥的密码,无密码可不加。
可以在系统的环境变量中添加变量如下图所示:



或者在终端设置临时环境变量,这里使用 Powser Shell,使用其他终端请自行搜索设置方法。
$Env:TAURI_PRIVATE_KEY = "私钥内容或路径"
$Env:TAURI_PRIVATE_KEY = "私钥密码"
tauri.config.json 配置
配置 tauri.config.json 的 updater 部分内容。
"updater": {
"active": true,
"endpoints": [
"https://gitee.com/zhidal/tauri-update-test/raw/master/update.json"
],
"dialog": true,
"pubkey": "YOUR_UPDATER_SIGNATURE_PUBKEY_HERE"
}
- active: 启用更新器;
- endpoints: 端点,保存获取更新信息 json 的接口,是数组类型,可以存放多个,会依次请求更新信息;
- dialog: 默认更新弹窗,如需自己配置,设为
false; - pubkey: 公钥,填写上文中生成的公钥
myapp.key.pub的内容;
endpoints 填写更新信息的 json 接口,将 gitee 仓库中的实际路径中的 bolb 替换成 raw 即可得到 json 的内容接口。
json 接口内容请看更新信息。
如:https://gitee.com/zhidal/tauri-update-test/blob/master/update.json 的 json 路径为 https://gitee.com/zhidal/tauri-update-test/raw/master/update.json。
打包 tauri 项目
运行以下命令打包:
yarn tauri build
打包完成后会在项目的 src-tauri/target/release/bundle/msi 中看到打包后的文件。
分别是后缀为 *.msi *.msi.zip *.msi.zip.sig 的三个文件。
*.msi是安装包;*.msi.zip是更新时使用的包;*.msi.zip.sig是第二个包的签名文件;
发行版本
在仓库中创建发行版,如果项目仓库开源,可以在项目仓库中创建发行版本,如果是私有仓库,则在 存在更新信息的仓库中发行版本,流程是一致的,但仓库要开源。
在仓库中创建发行版流程,如下图所示:



图中 *.msi.zip 文件的链接即是更新器使用到的 url,具体请看下节。
修改更新信息
在存放更新信息的仓库中,更新 json 文件, json 内容格式有两种,推荐使用 Update File JSON Format 格式。
{
"version": "v0.4.0",
"notes": "Test version",
"pub_date": "2022-08-02T15:56:57Z",
"platforms": {
"windows-x86_64": {
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRMEt2OXpkODJQRFNZSFhXUkd6dEdSUFNRaWN3WXJzMU9adlk0RGhsSU5qclhKc25NK0toQkU5eXFiTTlLOW9uNzlsMlI4Z3UxSzYrUzM5SklFY21PUkwzTUJza1gra3c0PQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNjU5NDk0ODQ4CWZpbGU6dGF1cmktdml0ZS1kZW1vXzAuNC4wX3g2NF96aC1DTi5tc2kuemlwCkh0UUdUdFBIMDRiV256RTkvWms5cDFZaFZqOUcyUUVlTkhuM2hLbUwvVlYxcmdMSTV3eTZkb0NZc1ZBOGl0Qmc3YVh1cFJiZnFWM2lSUmhieXB2UEJRPT0K",
"url": "https://gitee.com/zhidal/tauri-vite-demo/attach_files/1145742/download/tauri-vite-demo_0.4.0_x64_zh-CN.msi.zip"
}
}
}
- version: 版本号;
- notes: 提示信息;
- pub_date: 发布时间;
- platforms: 不同平台的更新包信息, key 用来区分不同平台, 具体格式参考官方指南;
- signature: 是安装包文件的签名信息, 即是打包生成的
*.msi.zip.sig后缀的文件内容; - url: 是安装包文件的下载路径,即在仓库中发行版本后的
*.msi.zip文件的链接;
测试更新
修改项目的 tauri.config.json 文件的 version 版本号(大于当前版本号)。
然后重复以下步骤:
安装旧版本程序,打开运行,查看是否提示安装新版本。
或者把项目中的 version 改回旧版本, 运行开发命令 yarn tauri dev,查看是否提示安装新版本。
如果没有提示信息,可以参考官方指南,添加监听和手动发起更新检测和安装。
根据提示信息,修复问题。

浙公网安备 33010602011771号