自动更新配置
Tydora 支持自动更新功能,用户启动应用时会自动检查并安装最新版本。本文档介绍如何配置自动更新所需的签名密钥。
工作原理
- 开发者构建应用时,使用私钥对安装包进行签名
- 构建产物包含
.sig签名文件和latest.json版本信息 - 用户启动应用时,Tauri 从 GitHub Releases 下载
latest.json - 验证签名后自动下载并安装更新
三条更新渠道
Tydora 会先判断当前安装形态(Rust 侧 is_store_version / is_portable_version),再决定走哪条更新路径:
| 渠道 | 判断方式 | 更新方式 |
|---|---|---|
| GitHub 版(默认) | 非商店、非便携 | Tauri 更新器读取 GitHub Releases 的 latest.json 与 .sig |
| 微软商店版 | 安装标识来自 MSIX | 跟随商店更新;检测到 GitHub 有更高版本时,由用户在「关于」页主动确认切换到 GitHub 版本 |
| 便携版 | 存在便携标记 | 通过便携版专用通道(check_portable_update)检查并安装 |
商店版与便携版的更新入口都在设置的「关于」标签;三个渠道共用同一份签名密钥与 latest.json。
生成签名密钥
安装 minisign
# Windows(使用 scoop)
scoop install minisign
# macOS
brew install minisign
# Linux
sudo apt install minisign
生成密钥对
minisign -G -s ~/.tauri/tydora.key -p ~/.tauri/tydora.key.pub
执行后会提示输入密码,此密码即为 TAURI_SIGNING_PRIVATE_KEY_PASSWORD。
生成两个文件:
~/.tauri/tydora.key— 私钥(保密)~/.tauri/tydora.key.pub— 公钥(公开)
配置 GitHub Secrets
步骤
- 打开仓库
zuorn/Tydora - 进入 Settings → Secrets and variables → Actions
- 点击 New repository secret
- 添加以下 secrets:
| Secret 名称 | 值 | 说明 |
|---|---|---|
TAURI_SIGNING_PRIVATE_KEY |
私钥文件内容 | cat ~/.tauri/tydora.key 的输出 |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD |
生成密钥时设置的密码 | 可选,未设置密码则留空 |
复制私钥内容
# Windows
type %USERPROFILE%\.tauri\tydora.key
# macOS / Linux
cat ~/.tauri/tydora.key
将输出的完整内容粘贴到 GitHub Secret 中。
配置公钥
将公钥配置到 app/tydora-desktop/tauri.conf.json 的 plugins.updater 中:
{
"plugins": {
"updater": {
"pubkey": "<公钥内容>",
"endpoints": [
"https://github.com/zuorn/Tydora/releases/latest/download/latest.json"
]
}
}
}
桌面端在 2026-09 的重构中已从仓库根的 src-tauri/ 移到 app/tydora-desktop/,VERSION 与 tauri.conf.json 的同步由 npm run sync-version(scripts/sync-version.mjs)负责。
公钥内容可通过以下命令获取:
# Windows
type %USERPROFILE%\.tauri\tydora.key.pub
# macOS / Linux
cat ~/.tauri/tydora.key.pub
构建产物
配置完成后,Release 构建(.github/workflows/release.yml)会自动生成并汇总以下产物:
| 文件 | 平台 | 说明 |
|---|---|---|
Tydora_x.x.x_x64-setup.exe |
Windows | NSIS 安装包 |
Tydora_x.x.x_x64-setup.exe.sig |
Windows | NSIS 签名文件 |
Tydora_x.x.x_x64_portable.zip |
Windows | 便携版(免安装,解压即用,由 CI 额外压缩 Tydora.exe) |
Tydora_x.x.x_x64_en-US.msi |
Windows | MSI 安装包(用于企业分发) |
Tydora_x.x.x_aarch64.dmg |
macOS | Apple 芯片安装包 |
Tydora_aarch64.app.tar.gz / .sig |
macOS | Apple 芯片更新包与签名 |
Tydora_x64.dmg |
macOS | Intel 芯片安装包 |
Tydora_x64.app.tar.gz / .sig |
macOS | Intel 芯片更新包与签名 |
Tydora_amd64.AppImage / .sig |
Linux | AppImage 安装包与签名 |
Tydora_amd64.deb / .sig |
Linux | Debian / Ubuntu 安装包与签名 |
Tydora_x86_64.rpm / .sig |
Linux | Fedora / RHEL 安装包与签名 |
Tydora_x.x.x.0_x64.msix |
Windows | 微软商店包(由 .github/workflows/msstore.yml 单独产出,见 09-博客/上架微软商店) |
latest.json |
全平台 | 版本信息(Tauri 更新器自动读取) |
验证配置
本地验证
# 构建应用
npm run tauri build
# 检查是否生成 .sig 文件(target 目录在仓库根,由 app/.cargo/config.toml 指定)
ls target/release/bundle/nsis/*.sig
GitHub Actions 验证
- 推送到
release分支或手动触发 Actions - 查看构建日志,确认无签名相关错误
- 检查 Release 是否包含
.sig文件和latest.json
常见问题
Q: 构建失败提示签名错误
确保 TAURI_SIGNING_PRIVATE_KEY 的值包含完整的私钥内容,包括 untrusted comment: 开头的部分。
Q: 用户无法自动更新
检查 latest.json 是否可访问:
https://github.com/zuorn/Tydora/releases/latest/download/latest.json
Q: 如何更换密钥
- 使用
minisign -G生成新密钥对 - 更新 GitHub Secrets 中的私钥
- 更新
tauri.conf.json中的公钥 - 重新构建并发布
相关文档
- 01-开始使用/02-关于 — 版本信息
- 07-设置/01-通用设置 — 应用设置