# 更新功能使用说明 ## 功能概述 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 框架文档