Files
cstb-next/UPDATE_USAGE.md

182 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 更新功能使用说明
## 功能概述
CS工具箱 现已支持自动更新检查、下载和安装功能。系统支持两种更新源:
1. **自定义更新服务器**(优先使用)
2. **GitHub Release**(备用方案)
## 快速开始
### 1. 配置更新源
在项目根目录创建 `.env.local` 文件(如果不存在):
```env
# 自定义更新服务器 URL可选
NEXT_PUBLIC_UPDATE_ENDPOINT=https://your-server.com/api/update/check
# GitHub 仓库格式owner/repo可选
NEXT_PUBLIC_GITHUB_REPO=your-username/cstb-next
```
### 2. 使用更新功能
1. 打开应用
2. 进入 **偏好设置****通用设置**
3. 在"更新检查"部分点击"检查更新"按钮
4. 如果有新版本,系统会显示更新信息
5. 点击"下载更新"开始下载
6. 下载完成后,点击"立即安装"进行安装
## 功能特性
- ✅ 自动检测新版本
- ✅ 支持自定义更新服务器
- ✅ GitHub Release 作为备用方案
- ✅ 跨平台支持Windows、macOS、Linux
- ✅ 下载进度显示
- ✅ 更新说明显示(支持 Markdown
- ✅ 自动重启应用
## 自定义更新服务器
### 接口要求
你的服务器需要提供一个 GET 接口,返回 JSON 格式的更新信息。
详细格式请参考 [UPDATE_API.md](./UPDATE_API.md)
### 简单示例
```json
{
"version": "0.0.7",
"notes": "修复了已知问题",
"pub_date": "2025-01-15T10:00:00Z",
"download_url": "https://your-server.com/releases/v0.0.7/cstb-0.0.7.exe"
}
```
## GitHub Release
### 设置步骤
1. 在 GitHub 上创建仓库(如果还没有)
2. 创建 Release标签格式`v0.0.7``0.0.7`
3. 上传安装包到 Release 资源
4.`.env.local` 中配置仓库名称:
```env
NEXT_PUBLIC_GITHUB_REPO=your-username/cstb-next
```
### 文件命名建议
- Windows: `cstb-0.0.7-windows-x86_64.exe`
- macOS Intel: `cstb-0.0.7-darwin-x86_64.dmg`
- macOS Apple Silicon: `cstb-0.0.7-darwin-aarch64.dmg`
- Linux: `cstb-0.0.7-linux-x86_64.AppImage`
## 更新流程
```
用户点击"检查更新"
检查自定义服务器
↓ (失败)
检查 GitHub Release
比较版本号
↓ (有新版本)
显示更新对话框
用户确认下载
下载安装包
安装并重启
```
## 开发说明
### Rust 端
更新相关的代码位于:
- `src-tauri/src/tool/updater.rs` - 更新逻辑实现
- `src-tauri/src/cmds.rs` - Tauri 命令接口
- `src-tauri/src/main.rs` - 命令注册
### 前端
更新相关的代码位于:
- `src/components/cstb/UpdateChecker.tsx` - 更新检查组件
- `src/app/(main)/preference/general/page.tsx` - 设置页面
### 添加新的更新源
如果你想添加新的更新源(如 GitLab、自建服务器等可以修改 `src-tauri/src/tool/updater.rs` 中的 `check_update` 函数。
## 故障排查
### 检查更新失败
1. **确认网络连接正常**
2. **检查配置是否正确**
- 确认 `.env.local` 文件存在
- 确认环境变量名称正确
- 确认 URL 格式正确
3. **查看控制台日志**
- 打开开发者工具F12
- 查看 Console 标签页的错误信息
### 下载失败
1. **检查下载链接是否有效**
- 在浏览器中直接访问下载链接
- 确认文件存在且可访问
2. **检查磁盘空间**
- 确保有足够的磁盘空间
3. **检查文件权限**
- 确保应用有写入权限
### 安装失败
1. **Windows**
- 确认有管理员权限
- 检查防病毒软件是否阻止安装
2. **macOS**
- 确认在"系统偏好设置"中允许安装
- 可能需要手动打开 DMG 文件
3. **Linux**
- 确认有 sudo 权限
- 检查包管理器是否正确安装
## 测试
### 测试自定义服务器
1. 启动本地服务器
2. 配置 `NEXT_PUBLIC_UPDATE_ENDPOINT=http://localhost:3000/api/update`
3. 在应用中点击"检查更新"
### 测试 GitHub Release
1. 创建一个测试 Release
2. 配置 `NEXT_PUBLIC_GITHUB_REPO=your-username/your-repo`
3. 确保 Release 版本号高于当前版本
4. 在应用中点击"检查更新"
## 注意事项
1. **版本号格式**:建议使用语义化版本(如 `0.0.7`
2. **HTTPS**:生产环境建议使用 HTTPS
3. **超时设置**:检查更新超时 10 秒,下载超时 5 分钟
4. **自动重启**:安装完成后会自动重启应用
## 相关文档
- [UPDATE_API.md](./UPDATE_API.md) - 详细的 API 接口文档
- [Tauri 官方文档](https://tauri.app/) - Tauri 框架文档