feat: release OpsXShell 2.1.0 native Tauri edition
This commit is contained in:
1 parent
e9a0d21758
commit
a3dba0c6ed
311 files changed
+31748
-14897
No files matched your search
@@ -0,0 +1,88 @@
|
||||
# 发布指南
|
||||
|
||||
## 构建命令
|
||||
|
||||
```bash
|
||||
# 当前平台完整安装包
|
||||
npm run build:tauri
|
||||
|
||||
# 仅 macOS App
|
||||
npx tauri build --bundles app
|
||||
|
||||
# macOS arm64
|
||||
npm run dist:mac
|
||||
|
||||
# Windows x86_64(必须在 Windows 或配置完整交叉编译环境)
|
||||
npm run dist:win
|
||||
```
|
||||
|
||||
macOS App 位于:
|
||||
|
||||
```text
|
||||
src-tauri/target/release/bundle/macos/OpsXShell.app
|
||||
```
|
||||
|
||||
指定 `aarch64-apple-darwin` target 时,产物位于对应 target 的 `release/bundle` 下。
|
||||
|
||||
## 临时 DMG
|
||||
|
||||
Tauri 调用 `hdiutil` 制作 DMG 时,可能在异常中断后留下:
|
||||
|
||||
```text
|
||||
rw.<进程号>.OpsXShell_<版本>_aarch64.dmg
|
||||
```
|
||||
|
||||
这些 `rw.*.dmg` 是可写临时镜像,不是发布包。确认没有正在运行的 Tauri/hdiutil 打包任务后可以删除。正式包没有 `rw.<数字>.` 前缀。
|
||||
|
||||
如果 DMG 脚本报错 `resource busy`,先检查是否正从临时挂载目录运行 OpsXShell:
|
||||
|
||||
```bash
|
||||
hdiutil info
|
||||
lsof +D /Volumes/<临时卷名>
|
||||
```
|
||||
|
||||
先正常退出该 OpsXShell 进程,再卸载对应的临时卷并重新构建。不要在应用仍从卷内运行时直接删除 `rw.*.dmg`。
|
||||
|
||||
## 签名和公证
|
||||
|
||||
标签 `tauri-v*` 会触发 `.github/workflows/tauri-release.yml`。正式标签构建要求签名变量齐全。
|
||||
|
||||
macOS:
|
||||
|
||||
- `APPLE_CERTIFICATE`
|
||||
- `APPLE_CERTIFICATE_PASSWORD`
|
||||
- `APPLE_SIGNING_IDENTITY`
|
||||
- `APPLE_ID`
|
||||
- `APPLE_PASSWORD`
|
||||
- `APPLE_TEAM_ID`
|
||||
|
||||
Windows:
|
||||
|
||||
- `WINDOWS_CERTIFICATE_BASE64`
|
||||
- `WINDOWS_CERTIFICATE_PASSWORD`
|
||||
|
||||
缺少凭据时只能生成开发构建,不能标记为正式签名或已公证版本。
|
||||
|
||||
## 产物验证
|
||||
|
||||
```bash
|
||||
npm run release:preflight:mac
|
||||
npm run release:verify:mac
|
||||
|
||||
npm run release:preflight:win
|
||||
npm run release:verify:win
|
||||
```
|
||||
|
||||
验证脚本检查架构、体积和安装包存在性。正式标签还会验证 macOS 签名/Gatekeeper 或 Windows Authenticode 签名。
|
||||
|
||||
安装包还必须包含 `ssh://` 协议注册。macOS 检查 `CFBundleURLTypes`,Windows 安装后检查当前用户 `Software\\Classes\\ssh` 并实际执行一次协议唤起。只验证配置文件不足以证明单实例事件交付正常。
|
||||
|
||||
## 发布前检查
|
||||
|
||||
1. `package.json`、`package-lock.json`、`src-tauri/Cargo.toml`、`Cargo.lock` 和 `tauri.conf.json` 版本一致。
|
||||
2. `npm run acceptance:full` 通过。
|
||||
3. 目标平台构建和签名通过。
|
||||
4. 安装后完成输入框复制/粘贴、SFTP 双向拖拽、普通区域右键菜单、SSH/SFTP/代理/跳板和 `ssh://` 单实例唤起验收。
|
||||
5. 大模型新配置必须先测试后保存;AI“执行任务”必须显示当前 SSH 目标并在确认后只执行一次。
|
||||
5. 检查安装包尺寸,没有上传 `rw.*.dmg`、日志、测试密钥或用户数据。
|
||||
6. 保留上一稳定版本及回滚说明。
|
||||
Reference in new issue
Block a user