[feat] better installer + changelog test version switch + better video config view
This commit is contained in:
181
UPDATE_USAGE.md
Normal file
181
UPDATE_USAGE.md
Normal file
@@ -0,0 +1,181 @@
|
||||
# 更新功能使用说明
|
||||
|
||||
## 功能概述
|
||||
|
||||
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 框架文档
|
||||
Reference in New Issue
Block a user