Tauriの基礎 - 設定ファイル
概要
tauri.conf.json ファイルは、Tauriアプリケーションの動作を制御するための設定ファイルである。
このファイルは、src-tauri ディレクトリ内に配置される。
Tauriプロジェクトのビルド設定、ウインドウ設定、バンドル設定等、アプリケーション全体の設定を一元管理する。
JSON形式で記述され、開発時と本番ビルド時の両方で参照される。
主な設定カテゴリは以下の通りである。
| 設定カテゴリ | 説明 |
|---|---|
productName と version |
アプリケーションの基本情報 |
identifier |
アプリケーションの一意識別子 |
app |
ウインドウやセキュリティの設定 |
build |
ビルドプロセスの設定 |
bundle |
インストーラやパッケージングの設定 |
基本構造
tauri.conf.json ファイルの基本構造を以下に示す。
このファイルは、src-tauri/tauri.conf.json として配置される。
{
"productName": "MyApp",
"version": "1.0.0",
"identifier": "com.example.myapp",
"build": {
...
},
"app": {
...
},
"bundle": {
...
}
}
下表に、tauri.conf.jsonファイルの主要なセクションを示す。
| セクション | 説明 |
|---|---|
productName |
アプリケーションの製品名 |
version |
アプリケーションのバージョン番号 |
identifier |
アプリケーションの一意識別子 (逆ドメイン記法) |
build |
ビルドプロセスに関する設定 |
app |
ウインドウ、セキュリティ、グローバル設定 |
bundle |
パッケージングとインストーラに関する設定 |
app設定
app セクションでは、ウインドウの設定、セキュリティ設定、グローバルTauri設定を行う。
windows設定
windows 配列には、アプリケーションで使用するウインドウの設定を記述する。
複数のウインドウを定義することができる。
{
"app": {
"windows": [
{
"label": "main",
"title": "My Application",
"width": 800,
"height": 600,
"resizable": true,
"fullscreen": false,
"decorations": true,
"transparent": false,
"minWidth": 400,
"minHeight": 300,
"center": true,
"url": "index.html"
}
]
}
}
下表に、主なウインドウ設定項目を示す。
| プロパティ | 型 | 説明 |
|---|---|---|
label |
string | ウインドウの一意識別子 (必須) |
title |
string | ウインドウのタイトル |
width |
number | ウインドウの幅 (ピクセル) |
height |
number | ウインドウの高さ (ピクセル) |
resizable |
boolean | リサイズ可否 |
fullscreen |
boolean | フルスクリーン表示 |
decorations |
boolean | ウインドウ装飾 (タイトルバー等) の表示 |
transparent |
boolean | 透明ウインドウの有効化 |
minWidth |
number | 最小幅 (ピクセル) |
minHeight |
number | 最小高さ (ピクセル) |
center |
boolean | 起動時に画面中央に配置 |
url |
string | 読み込むHTMLファイルのパス |
withGlobalTauri設定
withGlobalTauri をtrueに設定すると、window.__TAURI__ としてTauri APIにグローバルアクセスできる。
バンドラを使用せずに直接APIを呼び出す場合に便利である。
{
"app": {
"withGlobalTauri": true
}
}
security設定
security セクションでは、コンテンツセキュリティポリシー (CSP) 等のセキュリティ設定を行う。
{
"app": {
"security": {
"csp": null
}
}
}
CSPをカスタマイズする場合は、文字列でポリシーを指定する。
build設定
build セクションでは、開発サーバと本番ビルドのプロセスを設定する。
フロントエンドのビルドツールとの連携を定義する。
{
"build": {
"beforeDevCommand": "pnpm dev",
"beforeBuildCommand": "pnpm build",
"devUrl": "http://localhost:5173",
"frontendDist": "../dist"
}
}
下表に、各設定項目を示す。
| プロパティ | 説明 |
|---|---|
beforeDevCommand |
tauri dev コマンド実行前に実行するコマンド通常はフロントエンドの開発サーバ起動コマンドを指定 |
beforeBuildCommand |
tauri build コマンド実行前に実行するコマンド通常はフロントエンドのビルドコマンドを指定 |
devUrl |
開発サーバのURL ホットリロード用のフロントエンドサーバのアドレス |
frontendDist |
ビルド済みフロントエンドの出力ディレクトリ 本番ビルド時に参照される。 |
beforeDevCommand と beforeBuildCommand は、パッケージマネージャに合わせて適切に設定する。
例えば、npmの場合は npm run dev、pnpmの場合は pnpm dev とする。
bundle設定
bundle セクションでは、アプリケーションのパッケージングとインストーラ生成に関する設定を行う。
{
"bundle": {
"active": true,
"targets": "all",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/icon.icns",
"icons/icon.ico"
],
"publisher": "My Company Inc.",
"category": "Utility",
"resources": ["./resources/*"],
"windows": {
"nsis": {
"installMode": "perUser"
}
},
"linux": {
"deb": {},
"rpm": {},
"appimage": {}
},
"macOS": {
"dmg": {}
}
}
}
targets設定
targets では、生成するパッケージ形式を指定する。
"all" を指定すると、プラットフォームに応じた全ての形式が生成される。
| プラットフォーム | ターゲット形式 |
|---|---|
| Windows | nsis, msi, app |
| MacOS | app, dmg |
| Linux | deb, rpm, appimage |
icon設定
icon 配列には、アプリケーションアイコンのパスを指定する。
各プラットフォームで必要な形式のアイコンを用意する必要がある。
| ファイル形式 | 対応プラットフォーム | サイズ |
|---|---|---|
| PNG | 全プラットフォーム | 32x32, 128x128, 256x256 等 |
| ICNS | MacOS | 複数サイズを含む |
| ICO | Windows | 複数サイズを含む |
プラットフォーム別設定
各プラットフォーム固有の設定を以下に示すセクションで行う。
windows- Windows用のNSISやMSIの設定
- インストールモード (
perUserまたはperMachine) 等を指定
linux- Linux用のdeb、rpm、AppImageの設定
- パッケージの依存関係やメタデータを指定
macOS- macOS用のdmgやappの設定
- コード署名や公証に関する設定を含む。
identifier設定
identifier は、アプリケーションを一意に識別するための文字列である。
逆ドメイン記法 (Reverse Domain Name Notation) で記述する。
{
"identifier": "com.example.myapp"
}
形式と用途
識別子の形式は、ドメインを逆順にし、アプリケーション名を付加したものである。
| 用途 | 説明 |
|---|---|
| App ID (iOS / MacOS) | Appleのエコシステムでアプリを一意に識別 |
| Entitlements | アプリの権限設定で使用 |
| DBusサービス名 | Linuxでのプロセス間通信で使用 |
| Android ID | Androidアプリの一意識別子 |
推奨される事項
identifierを設定する時の推奨される事項を以下に示す。
- 所有するドメインを使用する。
- ドメインを所有していない場合は、com.example 等のプレースホルダを使用せず、独自の形式を検討する。
- 一貫性を保つ。
- 開発中に識別子を変更すると、設定ファイルや証明書の問題が発生する可能性がある。
- プラットフォームの要件を確認する。
- iOSやAndroidでは、識別子に制約がある場合がある。
プラットフォーム固有設定ファイル
Tauriでは、プラットフォームごとに異なる設定を適用するための専用ファイルを使用できる。
ファイル一覧
プラットフォーム固有の設定ファイルを以下に示す。
| ファイル名 | 対象プラットフォーム |
|---|---|
| tauri.linux.conf.json | Linux |
| tauri.windows.conf.json | Windows |
| tauri.macos.conf.json | macOS |
| tauri.ios.conf.json | iOS |
| tauri.android.conf.json | Android |
マージ動作
プラットフォーム固有の設定ファイルは、ベースの tauri.conf.json ファイルとマージされる。
マージには、JSON Merge Patch (RFC 7396) が使用される。
例えば、tauri.linux.conf.json で以下に示すように設定した場合、
Linuxビルド時のみ、バンドルターゲットが deb と appimage に限定される。
{
"bundle": {
"targets": ["deb", "appimage"]
}
}
カスタム設定ファイルの使用
特定の設定ファイルを指定してビルドする場合は、--config オプションを使用する。
cargo tauri build --config src-tauri/tauri.appstore.conf.json
この機能は、App Store用と通常配布用で異なる設定が必要な場合等に便利である。