macOS アプリケーション・バンドル
「アプリケーション・バンドル」は、macOS で実行されるパッケージ形式です。これは、シンプルなディレクトリで、アプリケーションの実行ファイル、リソース、Info.plist ファイルや、macOS フレームワークといったその他のファイルなど、アプリケーションの正常動作に必要なすべてのものが含まれています。
アプリを「macOS アプリケーション・バンドル」としてパッケージ化するには、Tauri CLI を使用して、Mac コンピューター上で tauri build
コマンドを実行します:
npm run tauri build -- --bundles app
yarn tauri build --bundles app
pnpm tauri build --bundles app
deno task tauri build --bundles app
bun tauri build --bundles app
cargo tauri build --bundles app
「macOS アプリ・バンドル」は、以下の構造を持つディレクトリです:
├── <productName>.app│ ├── Contents│ │ ├── Info.plist│ │ ├── ...additional files from [`tauri.conf.json > bundle > macOS > files`]│ ├── MacOS│ │ ├── <app-name> (app executable)│ ├── Resources│ │ ├── icon.icns (app icon)│ │ ├── ...resources from [`tauri.conf.json > bundle > resources`]│ ├── _CodeSignature (codesign information generated by Apple)│ ├── Frameworks│ ├── PlugIns│ ├── SharedSupport
詳細については、Bundle Structures 公式ドキュメント を参照してください。
「アプリ・バンドル」は Info.plist
ファイルによって設定されます。このファイルには、macOS によって読み取られる「設定値」や「アプリ ID」と共に「キーと値」のペアが含まれています。
Tauri は、アプリのバイナリ名、バージョン、バンドル ID、最小システム・バージョンなどの最も重要なプロパティ(属性)を自動的に設定します。
設定ファイルを拡張するには、src-tauri
フォルダに Info.plist
ファイルを作成し、必要なキー・ペアを追加します:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>NSCameraUsageDescription</key> <string>Request camera access for WebRTC</string> <key>NSMicrophoneUsageDescription</key> <string>Request microphone access for WebRTC</string></dict></plist>
この Info.plist
ファイルは、Tauri CLI によって生成された値とマージされます。アプリケーション・バージョンなどのデフォルト値を上書きする場合は、他の設定値ととの競合や、予期しない動作を引き起こすかもしれませんので、注意してください。
詳細については、Info.plist 公式ドキュメント を参照してください。
Info.plist
ファイル自体は、単一の言語のみ(通常は英語)をサポートします。複数の言語をサポートしたい場合は、追加する言語ごとに InfoPlist.strings
ファイルを作成できます。各ファイルは、それぞれの言語ごとの lproj
ディレクトリ(これはアプリケーション・バンドル内の Resources
ディレクトリにあります)に格納されます。
追加したファイルを自動的にバンドルするには、Tauri の「resources(リソース)機能」を利用します。そのためには、プロジェクト内に以下のパターンに従ったファイル構造を作成してください:
├── src-tauri│ ├── tauri.conf.json│ ├── infoplist│ │ ├── de.lproj│ │ │ ├── InfoPlist.strings│ │ ├── fr.lproj│ │ │ ├── InfoPlist.strings
「infoplist
ディレクトリ名」は、以下の「resources config(リソース設定)」で更新する場合には自由に命名できますが、「lproj
ディレクトリ名」のほうは命名規則に従い「言語コード.lproj <lang-code>.lproj
」の形、「文字列カタログ・ファイル」は InfoPlist.strings
(i と p は大文字)という名前でなければなりません。ほとんどの場合、「言語コード」は BCP 47 に従った二文字のコードである必要があります。
BCP 47 「言語タグの規定」: 「言語コード」(二桁、小文字)の例としては、de(ドイツ語)、fr(フランス語)、ja(日本語)、など; 《参考》 本稿とは別件ですが、同一言語にたいして地域による差がある場合は「地域コード」(二桁、通常大文字)の付記も行なわれます。たとえば、 en-US(英語−米国)、en-GB(英語−英国)、zh-CN(中国語−中国)、など。ISO 639 (言語コード)、ISO 3166-1(国名コード)も参照。
上記の Info.plist
の例では、de.lproj > InfoPlist.strings
ファイル(ドイツ語対応用)の内容は次のようになります:
NSCameraUsageDescription = "Kamera Zugriff wird benötigt für WebRTC Funktionalität";NSMicrophoneUsageDescription = "Mikrofon Zugriff wird benötigt für WebRTC Funktionalität";
最後に、上述の「リソース機能」を使用して、Tauri がこれらのファイルを取得するようにします:
{ "bundle": { "resources": { "infoplist/**": "./" } }}
「エンタイトルメント」は、Apple の特別な設定の「キーと値」のペアで、アプリに特定のアクセス権を付与する権利や特権として働きます。たとえば、ユーザーのデフォルト電子メール・クライアントとしての動作させることや App Sandbox 機能の使用することなど、です。
「エンタイトルメント」はアプリケーションの署名時に適用されます。詳しくは コード署名に関するドキュメント をご覧ください。
アプリケーションに必要なエンタイトルメント権限を定義するには、「エンタイトルメント・ファイル」を作成し、それを使用するように Tauri を設定する必要があります。
src-tauri
フォルダにEntitlements.plist
ファイルを作成し、アプリに必要な「キーと値」のペアを設定します:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>com.apple.security.app-sandbox</key> <true/></dict></plist>
- Entitlements.plist ファイルを使用するように Tauri を設定します:
{ "bundle": { "macOS": { "entitlements": "./Entitlements.plist" } }}
詳細については、Entitlements 公式ドキュメント を参照してください。
Tauri アプリケーションは、デフォルトで macOS 10.13 以降をサポートしています。あなたが、これより新しい macOS システムを必要とする API を使用しており、あなたのアプリ・バンドルでそのシステム要件の適用を必須としたい場合は、tauri.conf.json > bundle > macOS > minimumSystemVersion
で最小バージョン番号を指定できます:
{ "bundle": { "macOS": { "minimumSystemVersion": "12.0" } }}
アプリケーションの実行に追加の macOS フレームワークが必要な場合は、必要となるフレームワークを tauri.conf.json > bundle > macOS > frameworks
の設定内にリストします。
この frameworks リストには、「システム・フレームワーク」または「カスタム・フレームワークと dylib ファイル」のどちらかを含めることができます。
{ "bundle": { "macOS": { "frameworks": [ "CoreAudio", "./libs/libmsodbcsql.18.dylib", "./frameworks/MyApp.framework" ] } }}
tauri.conf.json > bundle > macOS > files
の設定を使用して、アプリケーション・バンドルにカスタム・ファイルを追加できます。これにより、tauri.conf.json
ファイルを基準として、宛先パスがソースにマッピングされます。
カスタム・ファイルは <Product-name> .app/contents
フォルダーに追加されます。
{ "bundle": { "macOS": { "files": { "embedded.provisionprofile": "./profile-name.provisionprofile", "SharedSupport/docs.md": "./docs/index.md" } } }}
上記の例では、profile-name.provisionprofile
ファイルが <product-name>.app/Contents/embedded.provisionprofile
にコピーされ、docs/index.md
ファイルが <product-name>.app/Contents/SharedSupport/docs.md
にコピーされます。
【※ この日本語版は、「Mar 29, 2025 英語版」に基づいています】
© 2025 Tauri Contributors. CC-BY / MIT