Tauri2.0プラグイン開発メモ

Tauri Pluginの開発について

以下のコマンドで雛形の作成が可能
npx @tauri-apps/cli plugin new [アプリ名]
※Android/iOS向けに作る場合は以下のように指定可能
npx @tauri-apps/cli plugin new [アプリ名] --android --ios

後から追加する場合
npx @tauri-apps/cli plugin ios init
npx @tauri-apps/cli plugin android init

examples/tauri-appが動かない
Svelteのバージョンが合っていないのかそのままでは動かなかった為、vite.config.ts
でコンポーネントAPI4を使用する旨を記述してやる必要がある
[2025/07/30追記] 現在解消済み!
export default defineConfig({
plugins: [svelte({
compilerOptions:{
compatibility:{
componentApi: 4
}
}
})],
...
});

こちらにて解消

ただ@sveltejs/vite-plugin-svelte
とvite
のバージョンの都合でnpm run tauri dev
実行時に以下のエラーが発生する状態。
error when starting dev server:
TypeError: crypto.hash is not a function
自分の環境だとNode.jsのバージョンをv22.17.1まで上げても解消しなかったので、以下のようにバージョンを下げて対応。
examples/tauri-app/package.json
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "^5.0.0",
"svelte": "^5.0.0",
"vite": "^6.0.0",
"@tauri-apps/cli": "^2.0.0"
}

app.tauri.plugin配下のパッケージ参照が解決できない
androidプラグイン作成前に以下のコマンドで.tauri
配下にモジュールをビルドしておく必要がある。
android配下で実行。
cargo build --target aarch64-linux-android
※うまくいかない場合はcargo clean
でキャッシュをクリアしておくと良い
実行後もエラーが残る場合は
./gradlew clean
でGradleのキャッシュを削除したり、
Android Studioで「File」→「Sync Project with Gradle Files」を選択しGradleの再同期を行う必要がある。

examples/tauri-appをandroidで起動
事前準備が必要
tauri-app配下で以下を実行
npm run tauri android init

examples/tauri-appをiosで起動
事前準備が必要
tauri-app配下で以下を実行
npm run tauri ios init

iOSで動かす前に一度コミットを行う。
project.pbxproj
に個人の設定が入る可能性があるため
その後XCodeでexamples/tauri-app/src-tauri/gen/apple
を開き、
「Signing & Capabilities」よりTeamを設定

Configについて
iOS/Androidどこで使うにせよRustで型定義が必要。
型定義をしていない場合デシリアライズが出来ないため、npm run tauri
で以下のようなエラーになる。
Error deserializing 'plugins.plugin-name' within your Tauri configuration:

tauri.config.json
でpluginの設定を行う場合、アプリケーション側でserde_json
を依存関係に追加する必要がある。
追加しない場合は以下のようなエラーになる。
error[E0433]: failed to resolve: could not find `serde_json` in the list of imported crates
Cargo.toml
[dependencies]
tauri = { version = "2.7.0", features = [] }
tauri-plugin-safe-area = { path = "../../../" }
serde_json = "1"