Tauriの基礎 - 設定ファイル

提供: MochiuWiki : SUSE, EC, PCB

概要

tauri.conf.json ファイルは、Tauriアプリケーションの動作を制御するための設定ファイルである。
このファイルは、src-tauri ディレクトリ内に配置される。

Tauriプロジェクトのビルド設定、ウインドウ設定、バンドル設定等、アプリケーション全体の設定を一元管理する。
JSON形式で記述され、開発時と本番ビルド時の両方で参照される。

主な設定カテゴリは以下の通りである。

tauri.conf.jsonファイルの主な設定カテゴリ
設定カテゴリ 説明
productNameversion アプリケーションの基本情報
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"
   }
 }


下表に、各設定項目を示す。

build設定項目の一覧
プロパティ 説明
beforeDevCommand tauri dev コマンド実行前に実行するコマンド
通常はフロントエンドの開発サーバ起動コマンドを指定
beforeBuildCommand tauri build コマンド実行前に実行するコマンド
通常はフロントエンドのビルドコマンドを指定
devUrl 開発サーバのURL
ホットリロード用のフロントエンドサーバのアドレス
frontendDist ビルド済みフロントエンドの出力ディレクトリ
本番ビルド時に参照される。


beforeDevCommandbeforeBuildCommand は、パッケージマネージャに合わせて適切に設定する。
例えば、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"
 }


形式と用途

識別子の形式は、ドメインを逆順にし、アプリケーション名を付加したものである。

identifierの用途
用途 説明
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ビルド時のみ、バンドルターゲットが debappimage に限定される。

 {
   "bundle": {
     "targets": ["deb", "appimage"]
   }
 }


カスタム設定ファイルの使用

特定の設定ファイルを指定してビルドする場合は、--config オプションを使用する。

cargo tauri build --config src-tauri/tauri.appstore.conf.json


この機能は、App Store用と通常配布用で異なる設定が必要な場合等に便利である。