Vegaアプリのマニフェストファイルについて
Vegaアプリケーションパッケージには、パッケージのルートにあるmanifest.tomlという構成ファイルが含まれている必要があります。このファイルには、パッケージに関する次のような重要な情報が記載されています。
- パッケージとそのコンポーネント(インタラクティブ、サービス、タスクおよびそれらの起動情報など)の「識別子」。
- Vegaシステムと、パッケージが依存するモジュール、サービス、メッセージなどのその他のインストール済みアプリケーションの「機能」。
- Vegaシステムやその他のインストール済みアプリケーションから特定の機能にアクセスするために必要な「権限」。
Vegaシステムと開発ツールは、この情報を使用してアプリケーションをインストール、実行、および管理します。
マニフェストファイル
VegaアプリケーションマニフェストはTOML構成ファイル形式で定義され、TOMLテーブル [] およびTOMLテーブル [[]] 形式の配列を利用して複数のセクションを宣言することで、情報をグループ化します。
schema-version = 1
[package]
# パッケージの基本的な詳細
[components]
# アプリケーションコンポーネントのライフサイクル構成
[tasks]
# タスク構成
[needs]
# 必要な依存関係
[wants]
# 任意の依存関係
[message]
# パッケージで定義されているメッセージ
[offers]
# パッケージで提供される機能
[processes]
# プロセスで実行するコンポーネントのグループ化
[[extras]]
# パッケージのカスタムメタデータ
schema-version
必須
schema-versionは、マニフェストファイルで使用されるスキーマのバージョンを指定します。ほかの情報を追加する前に、すべてのマニフェストでこれを宣言する必要があります。
schema-version = 1
現時点では、Vegaマニフェストスキーマのバージョンは1であるため、この値は常に1にする必要があります。
[package]
必須
[package] セクションは、一意の識別子、タイトル、アイコンなど、パッケージの基本的な詳細を宣言します。
[package]
id = "com.foo.bar"
title = "Foo Bar"
icon = "@image/foo_icon.png"
[package] セクションの詳細はこちら。
[components]
必須
[components] セクションは、インタラクティブ、サービス、およびタスクコンポーネントを含む、このアプリケーションパッケージにバンドルされているコンポーネントを宣言します。
[components]
[[components.interactive]]
id = "com.foo.bar.interactive"
categories = ["com.amazon.category.main"]
launch-type = "singleton"
[components] セクションの詳細はこちら。
[tasks]
任意
[tasks] セクションは、アプリケーションパッケージのライフサイクル中の特定のイベントで実行できる小さな定型アクションを宣言します。Vegaシステムは現在、アプリケーションをインストール後、最初に起動する前にこのようなタスクを実行するためのinstallイベントをサポートしています。
[tasks]
[[tasks.work]]
component-id = "com.foo.bar.onInstallOrUpdateTask"
mode = "install"
[tasks] セクションの詳細はこちら。
[needs]
任意
[needs] セクションは、アプリケーションがVegaデバイス上で機能するために必要なシステム機能を宣言します。この情報により、VegaパッケージマネージャーとAmazonアプリストアで、サポート対象デバイスにアプリケーションがインストールされていることを確認できます。目的のデバイスターゲティングに対するアプリケーションの [needs] を慎重に宣言してください。
[needs]
[[needs.module]]
id = "/com.amazon.camera.module@ICamera"
[[needs.privilege]]
id = "com.amazon.media.secureplayback"
[needs] セクションの詳細はこちら。
[wants]
任意
[wants] セクションは、アプリケーションがVegaデバイス上で機能するための任意の機能を宣言します。このリストにある機能がデバイスで使用できない場合は、アプリケーションコードでグレースフルフォールバックを処理してください。[needs] と [wants] の組み合わせを選択することで、より高性能なデバイスに拡張機能を提供しながら、デバイスのリーチを最大化できます。
[wants]
[[wants.service]]
id = "com.amazon.inputmethod.service"
[[wants.privilege]]
id = "com.amazon.camera.privilege.access"
[wants] セクションの詳細はこちら。
[message]
任意
[message] セクションは、Vega Messagingで使用されるメッセージURIのアクセス制御ルールを宣言します。
[[message]]
uri = "samplepkg://play"
sender-privileges = [com.amazon.security.example1]
receiver-privileges = [com.amazon.security.example2]
[message] セクションの詳細はこちら。
[offers]
任意
[offers] セクションは、モジュール、サービス、インタラクションなど、このパッケージがシステム上のほかのアプリケーションに提供する機能を宣言します。
[offers]
[[offers.service]]
id = "com.amazon.keplervideoapp.interface.provider"
[[offers.interaction]]
id = "com.amazondeveloper.keplervideoapp.main"
[offers] セクションの詳細はこちら。
[processes]
任意
[processes] セクションは、起動時にプロセスを共有する必要があるコンポーネントのグループを宣言します。
[processes]
[[processes.group]]
component-ids = [
"com.foo.bar.interactive",
"com.foo.bar.service"
]
[[processes.group]]
component-ids = [
"com.foo.bar.another_service",
]
[processes] セクションの詳細はこちら。
[[extras]]
任意
[[extras]] セクションは、パッケージに関連するカスタムメタデータを含むキーと値のペアのセットを宣言します。
[[extras]]
key = "foo"
value = "bar"
[extras] セクションの詳細はこちら。
マニフェストの検証
manifest.tomlファイルが正しい形式で記述されていて、その構成が有効であることを確認するには、VPTツール(アプリパッケージングツール)を使用できます。このツールはVega SDKに含まれており、SDKのインストール時に自動的にシステムのPATHに追加されます。
マニフェストファイルを検証するには、次のコマンドを実行します。<マニフェストのパス>をマニフェストファイルへの絶対パスに置き換えてください。
kepler exec vpt validate /<マニフェストのパス>/manifest.toml
VPTツールの詳細については、こちらを参照してください。
Last updated: 2025年9月30日

