マニフェストの[os.version]セクション
[os.version]セクションでは、アプリがサポートするデバイスのOSバージョンの範囲を宣言します。Vegaはビルド時にこのセクションを検証し、Vegaパッケージングツール(VPT)はパッケージアプリについて再度検証します。
Vega SDK 0.24以降では、[os.version]セクションが必須となっています。このセクションがないとビルドが失敗します。
[os.version]
target = "1.2"
min = "1.2"
Vega SDK 0.24の時点で正式に定義されているOSバージョンはOS 1.2のみであるため、minとtargetはどちらも1.2に設定してください。新しいOSバージョンが作成されたら、targetをビルドする対象の最新バージョンに設定し、minはサポートしている最も古いバージョンのままにしてください。
フィールド
次の表では、[os.version]セクションのフィールドについて説明します。
| フィールド | 必須 | 説明 |
|---|---|---|
min |
○ | アプリがサポートする最も古いOSバージョン。有効なOSバージョンである必要があります。 |
target |
○ | アプリがビルド対象としている最新のOSバージョン。有効なOSバージョンで、min以上である必要があります。 |
どちらの値も、正式なOSバージョンを指定する、引用符で囲まれた"M.n"文字列である必要があります。Vegaは、たとえその値が数値的に正しい形式であっても、正式に定義されていない値は受け付けません。
検証ルール
Vegaは、[os.version]セクションに以下のルールを適用しています。
-
minとtargetはいずれも、SDK互換性マニフェストで既知のOSバージョンである必要があります。 -
minはtarget以下でなければなりません。 -
すべての
[[needs.module]]エントリは、minのOSバージョンで利用できる必要があります。 -
min以降に追加されたAPIは、ツールによって[[wants.module]]エントリとして記録されるため、コード側でガード処理する必要があります。詳細については、isPresentOnOSによる新しいAPIのガード処理を参照してください。
マニフェストの例
[os.version]セクションはほかのマニフェストセクションと並んで配置され、ツールは一致するOSバージョンのモジュールエントリを生成します。OS 1.2をターゲットとする完全なマニフェストは、次の例のようになります。
schema-version = 1
[package]
id = "com.example.myapp"
title = "My App"
version = "1.0.0"
[os.version]
target = "1.2"
min = "1.2"
# ツールによって生成されます。手動で編集しないでください。
[[needs.module]]
id = "/com.amazon.vega.os@IVega_1_2"
[os.version]セクションは開発者が設定する項目で、ツールによってモジュールエントリが生成されます。各OSバージョンモジュールのidは、ドットがアンダースコアに置き換えられたOSバージョンであるため、1.2は/com.amazon.vega.os@IVega_1_2になります。
この例では、minとtargetはどちらも1.2であるため、マニフェストには[[needs.module]]エントリが1つあり、[[wants.module]]エントリはありません。このツールは、minに対してはneedsを出力し、minより上のバージョンに対してのみwantsを出力します。
[os.version]セクションの追加
このセクションは3つの方法で追加できます。
| 方法 | コマンド |
|---|---|
| 手動で追加 | manifest.tomlを直接編集します |
| マニフェスト生成ツールを使用 | vega project update-manifest --os-min 1.2 --os-version 1.2 |
| パッケージの再調整中に追加 | vega project install --fix --os-min 1.2 --os-version 1.2 |
プロジェクトにまだ[os.version]セクションがない場合は、最初の2つの方法のいずれかを使用してください。これらの方法は、このセクションを新規作成する用途に適しています。
3つ目の方法は移行時に便利な方法ですが、用途は限定的です。必ず--os-minと--os-versionの両方を指定します。installは書き込みを行う前にOSターゲットを解決します。[os.version]セクションがないプロジェクトで、--os-versionも指定されていない場合、installはMissing OS Versionで失敗し、何も書き込みません。両方のフラグを指定した場合、installはこのセクションを作成し、minの設定、targetの初期化を行い、📝 Set [os.version] min = "<v>" in manifest.tomlと表示して確認します。
3番目の方法には、さらに3つの制限が適用されます。
-
--os-minは、--fixと併用した場合にのみ有効になります。単独のvega project install --fixやinstall <パッケージ>コマンドでは、このセクションは追加されません。 -
--dry-runは、変更を書き込まずにプレビューするオプションです。 -
既に
[os.version]が存在する場合、この形式はminのみを書き込み、targetは変更しません。従来の[os]セクションも、この目的では既存のセクションと見なされます。targetを変更するには、vega project update-manifestを使用してください。
マニフェストのOSのバージョン設定をコマンドラインから検証するには、vega project doctorを実行します。[[needs.module]]と[[wants.module]]のエントリを生成するには、vega project update-manifestを実行します。
[os.version]を手動で編集する場合は、モジュールエントリを再生成してください。[[needs.module]]と[[wants.module]]のエントリは、[os.version]に基づいて生成されるため、ツールの外部でminやtargetを変更すると同期が取れなくなる可能性があります。手動で編集した後は、必ずvega project update-manifestを再実行してください。OSバージョンのモジュールIDは自分で記述しないでください。update-manifestは、SDK互換性マニフェストから正しい検証済みIDを解決します。手動で入力したIDが想定される形式と一致しない場合、vega project doctorの検証は失敗します。関連トピック
- ターゲットのOSバージョン
- マニフェストの[needs]セクション
- マニフェストの[wants]セクション
- Vega SDK CLIリファレンス
- Vega Studioでアプリのマニフェストを検証する方法
Last updated: 2026年8月10日

