[feat] better installer + changelog test version switch + better video config view

This commit is contained in:
2025-11-05 11:19:43 +08:00
parent ea0a42dc43
commit 41008cf13c
19 changed files with 1499 additions and 183 deletions

181
UPDATE_USAGE.md Normal file
View 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 框架文档