---
title: 自动更新配置
tags: [设置]
---

# 自动更新配置

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

## 工作原理

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

## 生成签名密钥

### 安装 minisign

```bash
# Windows（使用 scoop）
scoop install minisign

# macOS
brew install minisign

# Linux
sudo apt install minisign
```

### 生成密钥对

```bash
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. 进入 **Settings** → **Secrets and variables** → **Actions**
3. 点击 **New repository secret**
4. 添加以下 secrets：

| Secret 名称 | 值 | 说明 |
|------------|-----|------|
| `TAURI_SIGNING_PRIVATE_KEY` | 私钥文件内容 | `cat ~/.tauri/tydora.key` 的输出 |
| `TAURI_SIGNING_PRIVATE_KEY_PASSWORD` | 生成密钥时设置的密码 | 可选，未设置密码则留空 |

### 复制私钥内容

```bash
# Windows
type %USERPROFILE%\.tauri\tydora.key

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

将输出的完整内容粘贴到 GitHub Secret 中。

## 配置公钥

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

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

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

```bash
# 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 自动读取） |

## 验证配置

### 本地验证

```bash
# 构建应用
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. 重新构建并发布

## 相关文档

- [[01-开始使用/02-关于]] — 版本信息
- [[07-设置/01-通用设置]] — 应用设置
