跳到内容
Tauri

发布 Tauri 1.1.0

Tauri 1.1 Launch Hero Image

经过113次拉取请求和近两个月的工作,Tauri 团队很高兴地宣布 1.1.0 版本发布。这些更改经过内部审计,未发现任何安全问题。

您可以使用以下命令更新依赖项:

npm install @tauri-apps/cli@latest @tauri-apps/api@latest

此版本包含一个由 @martin-ocasek 报告的安全漏洞补丁。readDir 函数在找到符号链接时能够返回配置范围之外的条目。此补丁也已在 Tauri 1.0.6 中提供。更多详情请参见 GitHub 上的问题

我们一直建议使用 tauricon 项目,通过一个源 PNG 文件为您的 Tauri 应用程序生成图标。由于报告了一些问题,我们决定“用 Rust 重写”以增强其稳定性。这使得我们能够将此功能移至主 Tauri CLI,所以现在您可以使用 tauri icon 命令。

Tauri CLI 现在可以使用 cargo-binstall 安装,这是一种下载和安装预构建 Rust 二进制文件的机制。这些二进制文件适用于主要目标,可以通过以下命令安装:

$ cargo install cargo-binstall
$ cargo binstall tauri-cli
$ cargo tauri dev # run any Tauri command!

系统托盘 API(以前仅在 tauri::Builder::system_tray 中可用)现在可以在运行时与 tauri::SystemTray 一起使用,让您可以控制其生命周期,甚至可以创建多个托盘。

下面是一个快速示例,说明如何使用它:

use tauri::{Builder, CustomMenuItem, SystemTray, SystemTrayEvent, SystemTrayMenu};
Builder::default()
.setup(|app| {
let handle = app.handle();
SystemTray::new()
.with_id("main")
.with_menu(
SystemTrayMenu::new().add_item(CustomMenuItem::new("quit", "Quit"))
)
.on_event(move |event| {
let tray_handle = handle.tray_handle_by_id("main").unwrap();
if let SystemTrayEvent::MenuItemClick { id, .. } = event {
if id == "quit" {
tray_handle.destroy().unwrap();
}
}
})
.build(&handle)
.expect("unable to create tray");
});

在 1.0 版本中,Tauri 默认支持 JSON 配置格式,并在启用 config-json5 Cargo 功能时支持 JSON5,这意味着以下配置有效:

tauri.conf.json
{
"build": {
"devPath": "https://:8000",
"distDir": "../dist"
}
}
{
build: {
// devServer URL (comments are allowed!)
devPath: 'https://:8000',
distDir: '../dist',
},
}

1.1.0 版本包括在 config-toml Cargo 功能后的 TOML 支持。现在您可以在 Tauri.toml 文件中定义您的 Tauri 配置。

Tauri.toml
[build]
dev-path = "https://:8000"
dist-dir = "../dist"

此版本包含一些依赖项更新,如果您使用这些 crate 实现平台特定功能,则必须在您的应用程序中处理这些更新。最重要的更新是:

  • windows 更新到 0.39.0
  • webview2-com 更新到 0.19.1
  • raw-window-handle 更新到 0.5.0

请确保您也更新了 window-vibrancywindow-shadows 等插件到最新版本。

Tauri 团队感谢以下贡献者为 1.1.0 版本的发布所做的贡献:

此版本中有很多小的更改和错误修复。您可以在以下部分中查看版本说明的摘要。完整的更新日志可以在发布页面上找到。

  • tauri icon 命令
  • fs 模块中的 exists API
  • 使用 tauri dev --no-watch 禁用开发监视器选项
  • 自动使用任何 .taurignore 文件作为开发监视器和应用程序路径查找器的忽略规则
  • 为 Tauri CLI 添加 cargo-binstall 支持
  • TOML 配置格式 (Tauri.toml)
  • Linux 上的主题 API
  • 运行时创建系统托盘
  • beforeBundleCommand 配置
  • beforeDevCommandbeforeBuildCommand 现在有一个选项来配置当前工作目录
  • api::Command::encoding 方法用于设置 stdout/stderr 编码
  • 添加 native-tls-vendoredreqwest-native-tls-vendored Cargo 功能,以便在 Linux 上编译并静态链接到 vendored 的 OpenSSL 副本
  • AppAppHandle 实现 raw_window_handle::HasRawDisplayHandle
  • CLI 解析器忽略内部子命令。
  • 更新器破坏 Finder 中的应用程序图标。
  • 修复使用 CodegenContext API 时代码生成输出的根目录。
  • 修复 fs.readDir 递归选项读取超出范围的符号链接目录的问题。
  • 根据配置的公钥验证更新器签名
  • 如果边车配置与应用程序具有相同的文件名,则返回错误。
  • 将创建的窗口保存在 RefCell 中而不是 Mutex 中,避免死锁
  • tauri init 中提示 beforeDevCommandbeforeBuildCommand
  • 使用 cargo metadata 检测工作区根目录和目标目录。
  • 允许配置 before_dev_command,强制 CLI 等待命令完成后再继续。
  • 避免在每次构建时重新下载 AppImage 构建工具。
  • api::process::restart 中保留命令行参数
  • 通过清单依赖项 Microsoft.Windows.Common-Controls v6.0.0.0 增强 Windows 上的对话框样式。
  • 如果资产或图标更改,则重新运行代码生成
  • 仅当内容更改时才重写临时图标文件,避免不必要的重新构建。

© 2025 Tauri 贡献者。CC-BY / MIT