Contents
Tauri 1.xから2.0への移行の概要とアプローチ
Tauri 1.xから2.0への移行は、開発者がデスクトップアプリケーションを最新版に更新するうえで重要なステップです。公式ドキュメントだけでは把握しづらい点や実装時の落とし穴が存在するため、現実的な開発事例をもとにした具体的な手順が必要となります。本記事では、Tauri 2.0 移行 手順に焦点を当て、公式ガイドと実際のプロジェクト経験を組み合わせたダブルチェックによる実践ガイドをご提供します。対象読者として、Tauri 1.x版を使用経験のある開発者が想定されており、移行後の安定性向上やメンテナンスコストの軽減が目的です。
環境構築前後の変更点比較
Tauri 2.0への移行では、環境設定の変化に注意が必要です。Rustバージョンや依存ライブラリの更新ルールが1.xと大きく異なるため、事前に確認することが不可欠です。
Rustバージョンの要件変化
Tauri 2.0ではRustの最小サポートバージョン(MSRV)が変更されています。具体的には、1.60以上への対応が求められ、旧バージョンを使用している場合、rustup updateで最新版にアップグレードする必要があります。
注意点:Tauri 1.xの実際のMSRVは公式ドキュメントに記載されている「1.50〜1.60」と異なる可能性があります。移行前には現役開発者によるフィードバックやリポジトリの履歴を確認してください。
| 項目 | 値 | 補足 |
|---|---|---|
| Tauri 1.x対応Rustバージョン | 1.50〜1.60 | 一部の機能は非推奨 |
| Tauri 2.0対応Rustバージョン | 1.60以上 | 実装上での安定性向上を目的 |
依存ライブラリの更新ルール
Tauri 2.0では、tauriやtokioなどの主要な依存関係がバージョンアップしています。Cargo.toml内の依存関係を公式リポジトリで確認し、手動で最新版に差し替える必要があります。
Cargo.toml設定ファイルの更新手順
Cargo.tomlの設定は、Tauri 2.0移行において特に重要なポイントです。旧バージョンで使用されていた非推奨なプラグインや依存関係を整理し、最新版に合わせる必要があります。
プラグイン設定の見直し
1.xで利用していたtauri-plugin-xxxのような非推奨プラグインは、2.0では廃止または変更されている場合があります。公式ドキュメントの「Migrate from Tauri 1」セクションを参照し、不要なプラグインを削除します。
依存関係バージョンの対応付け
以下の手順で依存関係を更新してください:
cargo updateを実行し、最新の依存ライブラリ情報を取得- 注意:Tauri 2.0では
cargo updateの実行結果に一部変更が含まれる可能性があるため、公式ドキュメントで確認することを推奨します。 - Cargo.toml内で
tauri = "2.x"と指定し、公式リポジトリのバージョン情報を確認 dependenciesセクションに必要なライブラリを明示的に記述(例:tokio = { version = "1.0", features = ["full"] })
補足:トグル機能(例:
devモードの有効化)は、tauri.buildセクションに新たなパラメータが追加されているため、公式ドキュメントを参照しながら設定変更を行います。
src-tauriディレクトリ構造の再構成
Tauri 2.0では、src-tauriディレクトリの構造が刷新されています。特にmain.rsの配置場所や設定ファイルの分離方法が変更されているため、既存プロジェクトに適用する際は以下の手順を確認してください。
新規プロジェクトとの構造比較
| 項目 | Tauri 1.x | Tauri 2.0 |
|---|---|---|
| main.rs配置場所 | src-tauri/src/main.rs |
src-tauri/src/lib.rs(共有ライブラリとして) |
| 設定ファイル分離 | 単一のtauri.conf.json |
分離されたconfig/xxx.jsonに分類 |
既存プロジェクトへの適用方法
src-tauri/src/main.rsをlib.rsにリネーム- 新しい設定ファイル(例:
config/app.json)をsrc-tauri/config/配下に配置 tauri.conf.jsonを削除し、分離した設定ファイルを参照するよう変更
補足:Tauri 2.0では、モバイルとデスクトップの共通コードを扱えるようになったため、
lib.rsは両方で共有されます。これにより、プラットフォームに依存しないビジネスロジックの統一が可能となりました。
各OS向けビルドコマンドの差異
Tauri 2.0でのビルドコマンドは、OSごとに微妙な変化があります。特にクロスコンパイル時のターゲット指定やCI環境でのテスト手順に注意が必要です。
Windows/Mac/Linuxごとのターゲット設定
| OS | コマンド例 | 補足 |
|---|---|---|
| Windows | tauri build --target x86_64-pc-windows-msvc |
Visual C++ライブラリが必要 |
| Mac | tauri build --target aarch64-apple-darwin |
Apple Silicon対応 |
| Linux | tauri build --target x86_64-unknown-linux-gnu |
glibcのバージョンに注意 |
クロスコンパイル時の注意点
- 事前に適切なツールチェーン(例:x86_64-w64-mingw32)をインストール
- CI環境でのテストは、各OS向けに別々のジョブを作成
補足:
tauri buildコマンドの引数が一部変更されているため、公式ドキュメントの「Build」セクションで最新情報を確認してください。
CI/CD導入時の設定変更ポイント
CI/CD環境でのTauri 2.0移行では、ワークフローと秘密情報管理に特別な対応が必要です。特にGitHub Actionsなどとの連携方法やビルドステップの修正点が重要です。
GitHub Actionsなどのワークフロー更新
以下は具体的なワークフローアクセス例です:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
name: Tauri Build on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable components: rustc, clippy, cargo - name: Build for Windows run: tauri build --target x86_64-pc-windows-msvc - name: Build for macOS run: tauri build --target aarch64-apple-darwin - name: Build for Linux run: tauri build --target x86_64-unknown-linux-gnu |
秘密情報管理の見直し
TAURI_APP_IDやTAURI_API_KEYなどの環境変数は、CIツールで安全に管理- 設定ファイル(例:
.env)内の値は、tauri build実行時に自動で読み込まれる
事例:GitHub Actionsでは、
secrets.TAURI_API_KEYをワークフロー内で参照する仕組みに変更しました。
公式マイグレーションツールの活用法
Tauri 2.0には公式で提供されるマイグレーションツールが存在します。これにより、自動診断や設定ファイルの変換が可能となり、手作業でのミスを防ぐことができます。ただし、以下の点に注意してください:
tauri-migrateというツールは、Tauri公式リポジトリやドキュメントで明確に提供されている情報が確認されていないため、信頼性に疑問が残ります(2023年10月時点)。- より安定した移行を実施する場合は、手動で設定ファイルの変換と依存関係更新を行うのがおすすめです。
手動での移行手順(代替案)
- プロジェクトルートで
tauri build --releaseを実行し、エラーメッセージを確認 - 非推奨プラグインの削除と設定ファイル再構成を行う
Cargo.toml内の依存バージョンを公式ドキュメントに準拠して更新
チェックリスト:移行完了後は、
tauri build --releaseでビルドテストを行い、各OSでの動作を確認してください。