fix(tauri): 锁 Rust crate ~2.10 — 修 npm/Rust 跨 minor 版本检查 fail

CI release-tauri.yml 三平台 (mac arm64 / Windows / Linux) Build step 在
~10 秒内全部失败:

    Found version mismatched Tauri packages.
    tauri (v2.11.0) : @tauri-apps/api (v2.10.1)

根因:
- Cargo.toml 写 \`tauri = { version = "2" }\`,cargo 解析到 latest 2.x = 2.11.0
- npm \`@tauri-apps/api\` / \`@tauri-apps/cli\` latest 仍是 2.10.1(Tauri 团队
  把 Rust crate 发到了 crates.io 2.11,但 npm 包还没同步发 2.11)
- tauri build 启动时校验 npm 与 Rust crate 必须 major+minor 一致,跨 minor
  直接 fail——三平台都没机会跑到 bundle 阶段。

修复:
- Cargo.toml 把 \`tauri\` 锁成 \`~2.10\`,让 cargo 选 2.10.x patch 版本,
  与 npm 端 2.10.1 对齐。
- cargo update 精确下调到 tauri 2.10.3 / tauri-runtime 2.10.1 /
  tauri-runtime-wry 2.10.1(连带 wry 0.55.1→0.54.4 / tray-icon 0.23.1→0.21.3
  等 transitive 依赖一并回退,让 lock 内部一致——这也是 Cargo.lock diff 大
  的原因,所有改动都是 \`cargo update\` 自动算出来的,没有手改)。

等 Tauri 团队把 npm @tauri-apps/api 2.11 发布后,再放开 Cargo.toml 的
约束。期间 package-lock.json 保持 2.10.1,CI 走 \`npm ci\` 不会自动漂。
This commit is contained in:
baiqing committed 2026-05-06 11:55:39 +08:00
1 parent 6b38e5ef1d
commit e090eb2a3b
2 files changed
+416 -177

No files matched your search

+412 -176
View File
File diff suppressed because it is too large. Load diff
+4 -1
View File
@@ -16,7 +16,10 @@ tauri-build = { version = "2", features = [] }
cc = "1.1"
[dependencies]
tauri = { version = "2", features = ["macos-private-api", "tray-icon"] }
# 锁 ~2.10 是因为 Tauri 2.11.0 已发到 crates.io,但 npm 端 @tauri-apps/api / cli
# 还停在 2.10.1 没同步发布;tauri build 会校验 npm 与 Rust crate 的 major/minor
# 一致,跨 minor (2.10 vs 2.11) 直接 fail。等 npm 端发 2.11 后再放开。
tauri = { version = "~2.10", features = ["macos-private-api", "tray-icon"] }
tauri-plugin-shell = "2"
tauri-plugin-updater = "2"
tauri-plugin-single-instance = "2"