自动更新配置

Tydora 支持自动更新功能,用户启动应用时会自动检查并安装最新版本。本文档介绍如何配置自动更新所需的签名密钥。

工作原理

  1. 开发者构建应用时,使用私钥对安装包进行签名
  2. 构建产物包含 .sig 签名文件和 latest.json 版本信息
  3. 用户启动应用时,Tauri 从 GitHub Releases 下载 latest.json
  4. 验证签名后自动下载并安装更新

生成签名密钥

安装 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

步骤

  1. 打开仓库 zuorn/Tydora
  2. 进入 SettingsSecrets and variablesActions
  3. 点击 New repository secret
  4. 添加以下 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 中。

配置公钥

将公钥配置到 src-tauri/tauri.conf.json

{
  "plugins": {
    "updater": {
      "pubkey": "<公钥内容>",
      "endpoints": [
        "https://github.com/zuorn/Tydora/releases/latest/download/latest.json"
      ]
    }
  }
}

公钥内容可通过以下命令获取:

# Windows
type %USERPROFILE%\.tauri\tydora.key.pub

# macOS / Linux
cat ~/.tauri/tydora.key.pub

构建产物

配置完成后,Release 构建会自动生成以下文件:

文件 说明
Tydora_x.x.x_x64-setup.exe Windows 安装包
Tydora_x.x.x_x64-setup.exe.sig Windows 签名文件
Tydora_aarch64.app.tar.gz macOS ARM 安装包
Tydora_aarch64.app.tar.gz.sig macOS ARM 签名文件
Tydora_amd64.AppImage Linux 安装包
Tydora_amd64.AppImage.sig Linux 签名文件
latest.json 版本信息(Tauri 自动读取)

验证配置

本地验证

# 构建应用
npm run tauri build

# 检查是否生成 .sig 文件
ls src-tauri/target/release/bundle/nsis/*.sig

GitHub Actions 验证

  1. 推送到 release 分支或手动触发 Actions
  2. 查看构建日志,确认无签名相关错误
  3. 检查 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: 如何更换密钥

  1. 使用 minisign -G 生成新密钥对
  2. 更新 GitHub Secrets 中的私钥
  3. 更新 tauri.conf.json 中的公钥
  4. 重新构建并发布

相关文档