应用调试
在 Tauri 中,由于组件众多,您可能会遇到需要调试的问题。许多地方都会打印错误详情,Tauri 也包含一些工具来简化调试过程。
Rust 控制台
查找错误的首要位置是 Rust 控制台。它位于您运行 `tauri dev` 等命令的终端中。您可以使用以下代码从 Rust 文件中打印内容到该控制台
println!("Message from Rust: {}", msg);
有时您的 Rust 代码中可能存在错误,Rust 编译器可以提供大量信息。例如,如果 `tauri dev` 崩溃,您可以在 Linux 和 macOS 上这样重新运行它:
RUST_BACKTRACE=1 tauri dev
或者,如果您使用的是 cmd.exe,则在 Windows 上这样运行:
set RUST_BACKTRACE=1
tauri dev
或者,如果您使用的是 PowerShell,则在 Windows 上这样运行:
$env:RUST_BACKTRACE=1
tauri dev
此命令会提供详细的堆栈跟踪。通常情况下,Rust 编译器会通过提供有关问题的详细信息(例如)来帮助您:
error[E0425]: cannot find value `sun` in this scope
--> src/main.rs:11:5
|
11 | sun += i.to_string().parse::<u64>().unwrap();
| ^^^ help: a local variable with a similar name exists: `sum`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0425`.
此外,您可以使用 CrabNebula DevTools 来检测和查看应用程序日志。
WebView 控制台
右键单击 WebView,然后选择“检查元素”。这将打开一个类似于您习惯使用的 Chrome 或 Firefox 开发工具的 Web 检查器。您也可以使用 Linux 和 Windows 上的 `Ctrl + Shift + i` 快捷键,以及 macOS 上的 `Command + Option + i` 快捷键来打开检查器。
检查器是特定于平台的,在 Linux 上呈现 webkit2gtk WebInspector,在 macOS 上呈现 Safari 的检查器,在 Windows 上呈现 Microsoft Edge DevTools。
以编程方式打开开发者工具
您可以使用 Window::open_devtools
和 Window::close_devtools
函数来控制检查器窗口的可见性。
use tauri::Manager;
tauri::Builder::default()
.setup(|app| {
#[cfg(debug_assertions)] // only include this code on debug builds
{
let window = app.get_window("main").unwrap();
window.open_devtools();
window.close_devtools();
}
Ok(())
});
在生产环境中使用检查器
默认情况下,除非您使用 Cargo 功能启用它,否则检查器仅在开发和调试构建中启用。
创建调试构建
要创建调试构建,请运行 `tauri build --debug` 命令。
- npm
- Yarn
- pnpm
- bun
- Cargo
npm run tauri build -- --debug
yarn tauri build --debug
pnpm tauri build --debug
bunx tauri build --debug
cargo tauri build --debug
与正常的构建和开发流程一样,第一次运行此命令时构建需要一些时间,但在后续运行中速度会显著加快。最终捆绑的应用程序启用了开发控制台,并放置在 `src-tauri/target/debug/bundle` 中。
您也可以从终端运行构建的应用程序,这将提供 Rust 编译器注释(如果出错)或您的 `println` 消息。浏览到 `src-tauri/target/(release|debug)/[app name]` 文件,并直接在控制台中运行它,或者双击文件系统中的可执行文件本身(注意:此方法在出错时控制台会关闭)。
启用 Devtools 功能
在 macOS 上,devtools API 是私有的。在 macOS 上使用私有 API 会阻止您的应用程序被 App Store 接受。
要在生产版本中启用 devtools,您必须在 `src-tauri/Cargo.toml` 文件中启用 `devtools` Cargo 功能。
[dependencies]
tauri = { version = "...", features = ["...", "devtools"] }
调试核心进程
核心进程由 Rust 提供支持,因此您可以使用 GDB 或 LLDB 来调试它。您可以参考 在 VS Code 中调试 指南,了解如何使用 LLDB VS Code 扩展来调试 Tauri 应用程序的核心进程。