Tauri のアプリアイコンは OS ごとに形式が違います。Windows は複数解像度を束ねた .ico、macOS は .icns、Linux は複数サイズの PNG です。これを手作業で用意するのは面倒ですが、Tauri CLI の tauri icon サブコマンドに正方形の PNG を 1 枚渡すだけで、必要なファイルをすべて src-tauri/icons/ に生成できます。プラグインや権限は不要で、ビルド前に 1 回実行すれば済みます。
前提条件
Tauri CLI(@tauri-apps/cli)が入っていれば追加インストールはありません。入力画像は次の条件を満たすものを用意します。
- 正方形(幅 = 高さ)の PNG または SVG。1024×1024 px を推奨(最低でも 512×512)
- 透過対応の RGBA、32bit/px。背景を透過にしておくと macOS や Linux で自然に見える
- 角丸や余白は自分で付けない。macOS の Dock 用に見た目を調整したい場合のみ、あらかじめ画像側で処理する
1. アイコンを生成する
プロジェクトのルートに app-icon.png を置き、次を実行します。
npm run tauri icon ./app-icon.png
引数を省略すると ./app-icon.png が既定で使われます。出力先は tauri.conf.json と同じ階層の icons/(= src-tauri/icons/)で、既存ファイルは上書きされます。
主なオプションは --output <dir>(出力先の変更)、--png 64,256(指定サイズの PNG だけ生成。既定の生成物は作られない)、--ios-color "#1e293b"(透過不可の iOS アイコンの背景色)です。
生成されるファイル
| ファイル | 用途 |
|---|---|
icon.ico | Windows。16/24/32/48/64/256 px を内包 |
icon.icns | macOS の .app と DMG |
32x32.png, 128x128.png, 128x128@2x.png, icon.png | Linux の .deb / AppImage、ウィンドウアイコン |
Square*Logo.png, StoreLogo.png | Windows (UWP / Microsoft Store 向け) |
android/, ios/ | モバイル向け。デスクトップのみなら無視してよい |
2. tauri.conf.json の bundle.icon を確認する
生成したファイルがバンドルに含まれるかどうかは bundle.icon の配列で決まります。テンプレートの初期値は次のとおりで、tauri icon の出力名と一致しているため通常は変更不要です。
{
"bundle": {
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
}
}
パスは src-tauri/ からの相対パスです。--output で出力先を変えた場合はここも書き換えます。Windows の実行ファイルにはビルド時に配列内の .ico が埋め込まれ、macOS は .icns、Linux は PNG が使われます。
動作確認
npm run tauri dev を起動し、Windows ならタスクバー、macOS なら Dock に新しいアイコンが出れば成功です。ウィンドウ左上(Windows)のアイコンも同じ icon.ico から描かれます。
本番ビルド後は、Windows ならエクスプローラーで .exe と -setup.exe のアイコンを、macOS なら Finder で .app のアイコンを確認します。
$ ls src-tauri/icons
128x128.png 128x128@2x.png 32x32.png icon.icns icon.ico icon.png
Square107x107Logo.png Square142x142Logo.png ... StoreLogo.png android ios
よくあるエラーと対処法
入力画像が正方形でない・透過でない
幅と高さが違う PNG や RGB(アルファなし)の PNG を渡すと、CLI が画像形式の要件を満たしていないという趣旨のエラーで停止します。画像編集ソフトで正方形にトリミングし、「アルファチャンネルを保持して PNG 書き出し」したものを使ってください。JPEG は受け付けません。
Windows でアイコンを変えたのに .exe の見た目が古いまま
2 つの原因があります。1 つはエクスプローラーのアイコンキャッシュで、この場合はファイル名を変えるか別フォルダにコピーすると新しいアイコンが表示されます。もう 1 つは Cargo の差分ビルドが icon.ico の変更を検知していないケースで、src-tauri/target 配下の該当 crate だけを再ビルドすれば直ります。
cd src-tauri
cargo clean -p <Cargo.toml の package.name>
ビルド時に icon not found と言われる
bundle.icon に列挙したファイルが存在しないと、バンドル段階で「アイコンファイルが見つからない」という趣旨のエラーになります。--output で出力先を変えた、あるいは icons/ を .gitignore に入れていて CI に存在しない、が典型です。icons/ はリポジトリにコミットするか、CI で tauri icon を実行してから tauri build してください。
OS ごとの違いと注意点
- Windows:
.icoは 256 px までなので、元画像が大きくても高解像度ディスプレイでは 256 px 相当で描かれます - macOS: Dock は OS 側で角丸マスクをかけないため、他のアプリと揃えたいなら画像側で角丸と余白(約 10%)を付けます。
.icnsは署名時のハッシュ対象なので、署名後に差し替えないでください - Linux:
.debでは/usr/share/icons/hicolor/<size>x<size>/apps/に PNG が配置されます。デスクトップ環境によっては再ログインまで古いアイコンが残ります - 実行中にウィンドウのアイコンだけ動的に変えたい場合は ウィンドウのアイコンを変更する を参照してください
