33 lines
2.3 KiB
Markdown
33 lines
2.3 KiB
Markdown
# 发布与更新(轻量版)
|
||
|
||
应用内「检查更新」按钮(顶栏右上角)走**轻量版本检查**:查询 Gitea 最新 release,与当前版本号比较,有新版则弹窗显示发布说明并提供「前往下载」。不做签名校验、不在应用内静默安装——用户下载安装包后手动运行覆盖安装。
|
||
|
||
## 工作原理
|
||
|
||
- 检查接口(硬编码于 `src-tauri/src/main.rs` 的 `GITEA_LATEST_RELEASE_API`):
|
||
`http://gitea.xxhhcty.xyz:8080/api/v1/repos/zcdsj/tcjs/releases/latest`
|
||
- 当前版本取自 `src-tauri/tauri.conf.json` 的 `version`(`app.package_info().version`)。
|
||
- 比较规则:release 的 `tag_name`(去掉前导 `v`/`V`)按点分十进制与当前版本比大小。
|
||
- 「前往下载」打开 release 资产里第一个 `.exe`/`.msi`,没有资产则打开 release 页面。
|
||
|
||
## 发布一个新版本
|
||
|
||
1. **改版本号**:编辑 `src-tauri/tauri.conf.json` 的 `version`(如 `0.1.0` → `0.2.0`)。建议同步 `package.json`、`src-tauri/Cargo.toml`,保持一致。
|
||
2. **构建安装包**:`npm run tauri:build`
|
||
产物在 `src-tauri/target/release/bundle/`:
|
||
- `nsis/*.exe`(推荐发布这个)
|
||
- `msi/*.msi`
|
||
3. **在 Gitea 建 release**:
|
||
- 仓库 `zcdsj/tcjs` → Releases → New Release。
|
||
- **Tag** 用 `v0.2.0`(与第 1 步版本一致;检查时会去掉前导 `v`)。
|
||
- 把第 2 步的 `.exe`(和/或 `.msi`)作为**附件**上传。
|
||
- release 正文(body)会作为「发布说明」显示在更新弹窗里,写更新内容即可。
|
||
- 发布(标记为最新 release)。
|
||
4. 旧版本用户点「检查更新」→ 发现 `v0.2.0` 比本地新 → 弹窗 → 「前往下载」→ 下载安装包覆盖安装。
|
||
|
||
## 备注 / 后续可选
|
||
|
||
- **HTTP 站点**:当前 ureq 关闭了 TLS(Gitea 走 http)。若 Gitea 迁到 https,需要给 `src-tauri/Cargo.toml` 的 `ureq` 打开 `tls`(rustls)特性。
|
||
- **改成静默自动更新**:若以后要"应用内下载+安装+重启",可切换到官方 `tauri-plugin-updater`(需生成签名密钥、构建时签名、每次发布额外上传 `latest.json` 与 `.sig`)。本版刻意不做以保持轻量。
|
||
- **API 私有仓库**:若仓库非公开,Gitea API 需要 token;当前实现按公开仓库匿名访问。
|