マニフェストの [offers] セクション
[offers] セクションは、アプリケーションパッケージが、Vegaシステムにインストールされている他のアプリケーションパッケージに提供する機能を宣言します。[offfers] セクションは任意です。
[offers]
[[offers.interaction]]
# 許可するインタラクションの設定
[[offers.service]]
# 提供するサービスの設定
[[offers.module]]
# 共有アーティファクトの定義
[[offers.message-target]]
# ライフサイクルコンポーネントへのURIのマッピング
[[offers.interaction]]
任意
このセクションは、アプリ内の起動可能なターゲットをシステムの他の部分に提供するための従来のメカニズムです。このセクションは、[[offers.module]] + includes-messagesとoffers.message-targetに置き換えられています。移行期間中、offers.message-targetがないアプリでもoffers.interactionにゼロ以外のエントリがあるアプリでは、パッケージング時にマニフェスト検証エラーが発生します。
offers.interactionセクションは対話型コンポーネントまたはタスクコンポーネントを宣言します。これらのコンポーネントを他のアプリケーションパッケージが起動するには、ここで宣言した必要な権限を持っている必要があります。
[[offers.interaction]]
id = "com.foo.bar.interactive"
launch-uris = ["foo://interactive"]
フィールド
-
id(文字列、必須): 対話型コンポーネントまたはタスクコンポーネントの一意の識別子。この識別子は、マニフェストの[components]セクションで宣言したいずれかのコンポーネントの識別子です。 -
launch-uris(文字列の配列、任意): コンポーネントを呼び出すために使用できるURIのリスト。launch-uris = ["smart_app://main"] -
required-privileges(文字列の配列、任意): コンポーネントの起動に必要な権限のリスト。必要な権限を使用してアクセスを制限できるのは、システムパッケージだけです。この制限機能は、システムパッケージ以外では機能しません。required-privileges = [ "com.amazon.smart_app.privilege.access" ]
[[offers.service]]
任意
offers.service セクションでは以下を定義しています。
- このパッケージで提供されるサービス
- インストールされているほかのアプリがこれらのサービスを使用するために必要な権限
[[offers.service]]
id = "com.foo.bar.service"
フィールド
-
id(文字列、必須): サービスコンポーネントの一意の識別子。この識別子は、マニフェストの[components]セクションで宣言したいずれかのコンポーネントの識別子です。 -
required-privileges(文字列の配列、任意): サービスの呼び出しに必要な権限のリスト。必要な権限を使用してアクセスを制限できるのは、システムパッケージだけです。この制限機能は、システムパッケージ以外では機能しません。required-privileges = [ "com.amazon.smart_app.privilege.access" ]
[[offers.module]]
任意
[[offers.module]] セクションでは、このパッケージが他のアプリパッケージに提供する共有アーティファクトを宣言します。
[[offers.module]]
id = "/com.amazon.samplepkg.module@IMod1"
includes-messages = [
"pkg://com.amazon.samplepkg.main",
"samplepkg://play"
]
フィールド
-
id [文字列] (必須): モジュールの完全修飾識別子は、
/<component_name>@<revision_tag>の形式である必要があります。<component_name>と<revision_tag>を次の情報に置き換えます。<component_name>:- リバースDNS表記(
com.company.productなど)を使用する必要があります。 - リバースDNS名の部分は、小文字の英数字ASCII文字(
a-z0-9)とアンダースコア(_)のみで構成し、名前空間の部分はドット(.)で区切ります。名前空間部分に含まれる単語は、アンダースコア(_) で区切ります。 - これらの制約は正規表現
^[a-z_][a-z0-9_]*(?:\.[a-z_][a-z0-9_]*)*$で記述されます。 - これは、システム内で一意である必要があります。
- ヒント: パッケージIDをプレフィックスとして使用すると、一意性を確保できます。
- リバースDNS表記(
-
@: コンポーネント名とリビジョンタグの間の区切り文字。 <revision_tag>:- IDLのインターフェイスと同じ命名規則に従います。
- この種のIDL言語では習慣に従い、先頭は大文字の「
I」である必要があります。ThingDoerではなく、IThingDoerとします。 - 「
I」の後の文字は大文字にします。 - 残りの文字には、英数字(
a-zA-Z0-9)、またはアンダースコア(_)を使用できます。 - これらの制約は正規表現
^I([A-Z][a-zA-Z0-9_]*)$で記述されます。
id = "/com.amazon.samplepkg.module@IMod1" -
includes-messages [文字列の配列] (オプション): このモジュールで定義されているURIのリスト。各URIには、送信者と受信者の権限を説明するための、対応する
[[message]]セクションが必要です。各URIは1つのモジュールにのみ含めることができます。
includes-messages = [
"pkg://com.amazon.samplepkg.main",
"samplepkg://play"
]
[[offers.message-target]]
任意
[[offers.message-target]] はURIを対応するライフサイクルコンポーネントにマッピングして起動します。URIは、同じマニフェスト内のモジュールで定義するか、needs.moduleまたはwants.module呼び出しを介してインポートする必要があります。このセクションを繰り返して、URIの複数のマッピンググループをコンポーネントに定義できます。pkg://はライフサイクルコンポーネントの名前を直接含むURIに使用されることに注意してください。そのため、このセクションはスキップできます。
フィールド
- uris [文字列の配列] (必須): 現在のマッピンググループの一部であるURIのリスト。
uris = [
"samplepkg://play"
]
- uses-component [文字列] (必須): URIの受信者であるコンポーネントの名前。名前は、マニフェストの
[components.interactive]、[components.service]、[components.task]のいずれかのセクションにリストされているコンポーネントと一致する必要があります。
uses-component = "com.amazon.samplepkg.main"
Last updated: 2025年9月30日

