Contents
Tauri 2.0 アップデート方法のステップバイステップガイド
Rust言語でクロスプラットフォームアプリケーションを開発する開発者にとって、Tauri 2.0へのアップグレードは必須の課題です。本記事では、公式ドキュメントに基づいた最新アップデートプロセスを具体的に解説します。特に、主要な変更点や構成ファイルの修正手順、コンパイルエラー対応策など、実践的な知識をお伝えします。
Tauri 2.0リリースノートの主要変更点
Tauri 2.0は、安定性とセキュリティの向上に焦点を当てたバージョンです。以下に主な変更点を技術的観点から整理しました。
APIの破壊的変更
Windowの構築方法が変更された。以前はtauri::window::WindowBuilderを使用していたが、現在はtauri::api::window::Windowモジュールを直接利用するようになった。GlobalShortcutAPIが非推奨となり、代わりにtauri::command::global_shortcutの新しい実装が採用された。
セキュリティ強化機能
- アプリケーション内のファイルアクセス制限が厳格化され、
allow属性で許可されるディレクトリが明示的に設定されるようになった。 - WebviewのJavaScript実行を制御するため、
tauri::api::webview::Webviewにunsafe_scriptフラグが追加された。
パフォーマンス改善内容
- 起動時間が20%短縮(公式ベンチマーク結果)。これには、初期化プロセスの最適化とリソース管理アルゴリズムの見直しが寄与している。
プロジェクト構成ファイルの更新手順
Tauri 2.0にアップグレードする際は、Cargo.tomlやtauri.conf.jsonなどの構成ファイルを修正する必要があります。以下に具体的な手順を解説します。
Cargo.tomlの依存関係修正
-
Tauri CLIとライブラリのバージョンを
2.x.xに更新します。
toml
[dependencies]
tauri = "2.0.0"
tauri-cli = "2.0.0" -
tauricrateのデフォルトバージョンが変更されている場合、以下のように指定します。
toml
[features]
tauri = ["tauri/runtime-native"]
tauri.conf.jsonの設定項目変更
-
securityセクションに新しい制限パラメータを追加します。
json
"security": {
"fileAccess": {
"allowDirs": ["/home/user/data", "/Users/user/Documents"]
}
} -
webviewの設定でJavaScriptの実行許可を指定します。
json
"webview": {
"unsafeScript": false
}
ビルドスクリプトの調整
- プラットフォームごとのビルドスクリプトに、
rustcのバージョンチェックを追加します。
bash
# build.rs
if !cargo +nightly --version | grep -q "1.60"; then
echo "Rust version must be at least 1.60"
exit 1
fi
依存ライブラリのバージョン対応策
Tauri 2.0では、一部のエコシステムライブラリとの互換性が向上しています。以下の手順で依存関係を整理します。
Tauri CLIツールのアップグレード
tauri-cliを最新版に更新します。
bash
cargo install tauri-cli@2.0.0
互換性のあるエコシステムライブラリ選定
| ライブラリ | 対応バージョン | 備考 |
|---|---|---|
tauri-plugin-notification |
3.0.0 | Tauri 2.0との互換性あり |
tauri-plugin-dialog |
3.1.0 | 新しいAPIが利用可能 |
公式リリースノート(https://github.com/tauri-apps/tauri/releases/tag/v2.0.0)に記載されているバージョン番号を確認してください。
コンフリクトする依存関係の解決
- Cargo.tomlでコンフリクトを回避する方法として、
[patch.crates-io]にバージョン制限を設定します。
toml
[patch.crates-io]
serde = "1.0"
コンパイルエラーの解決方法
Tauri 2.0へのアップグレードでは、いくつかのコード変更が必要です。以下に代表的なエラーメッセージとその対応策を紹介します。
共通するエラーメッセージケース
error[E0432]: unresolved import: 指定されたモジュールが見つからない場合、tauri::apiに移動したモジュールを再確認してください。
rust
// 不正なインポート例
use tauri::window::Window;
// 正しいインポート例 (2.0以降)
use tauri::api::window::Window;
- **
error[E0605]: non-primitive cast:Stringas&strメソッドを使用します。**: 型キャストが必要な場合、as_str()
rust
let s = String::from("test");
let slice: &str = s.as_str();
モジュールパスの修正手順
- 以前は
tauri::windowだったモジュールが、tauri::api::windowに移動しているため、経路を確認してください。
アプリケーション動作確認チェックリスト
アップグレード後のアプリケーションは、以下の項目で動作検証を行います。
基本的な起動テスト
- Windows/macOS/Linuxのすべてのプラットフォームでアプリが起動するかを確認します。
- ターミナルで
tauri devを実行し、エラーがないことをチェック。 - ログに
Tauri 2.0 initializedと表示されることを確認。
プラットフォーム固有機能の検証
- WebviewのJavaScript制御や、ファイルアクセスのセキュリティ設定が正常に動作するかテストします。
unsafeScript: trueでJavaScript実行を許可した場合、alert("test")が表示されることを確認。
パッケージング後の動作確認
tauri buildでパッケージング後に、生成されたEXEやAppバンドルを実行します。- デバッグモードで起動し、初期表示・イベント処理の検証。
検証時にエラーが発生した場合は、
tauri dev --debugコマンドでデバッガを起動し、詳細なログを確認してください。