清单 [os.version] 部分
[os.version] 部分声明了您应用支持的设备操作系统版本范围。Vega会在构建时验证此部分,而Vega打包工具 (VPT) 也会在打包应用时再次验证。
自Vega SDK 0.24起,必须含有[os.version]部分。缺少该部分会导致构建失败。
[os.version]
target = "1.2"
min = "1.2"
截至Vega SDK 0.24,操作系统1.2是唯一正式发布的版本,因此min和target的值均设为1.2。后续发布更高版本的操作系统时,将target设为构建所用的最新版本,并将min保留为您支持的最旧版本。
字段
下表描述了 [os.version] 部分中的字段。
| 必填 | 字段 | 描述 |
|---|---|---|
min |
是 | 应用支持的操作系统最旧版本。必须是有效的操作系统版本。 |
target |
是 | 构建应用时所用的操作系统最新版本。必须是有效的操作系统版本,且不低于min。 |
两个值均须为"M.n"格式的引用字符串,且为官方正式发布的操作系统版本。否则,即使格式正确,Vega也会拒绝该值。
验证规则
Vega会对 [os.version] 部分应用以下规则:
-
min和target均须为SDK兼容性清单中已有的操作系统版本。 -
min须不高于target。 -
min版本中的每个[[needs.module]]条目均须可用。 -
您的代码必须保护
min之后的版本中添加的API,相关工具会将其记录为[[wants.module]]条目。有关详细信息,请参阅使用isPresentOnOS保护新API。
示例清单
[os.version] 部分位于其他清单部分旁,相关工具会生成与之匹配的操作系统版本模块条目。操作系统目标版本1.2的完整清单如下例所示。
schema-version = 1
[package]
id = "com.example.myapp"
title = "我的应用"
version = "1.0.0"
[os.version]
target = "1.2"
min = "1.2"
# 由工具自动生成。请勿手动编辑。
[[needs.module]]
id = "/com.amazon.vega.os@IVega_1_2"
[os.version] 部分由您自行设置,相关工具会生成模块条目。每个操作系统版本模块id都会将操作系统版本中的点号替换为下划线,例如1.2会变成/com.amazon.vega.os@IVega_1_2。
由于本例中的min和target均为1.2,因此清单只会生成一个 [[needs.module]] 条目,并不会生成 [[wants.module]] 条目。工具会为min生成一个need;只有当版本高于min时,才会生成want。
添加 [os.version] 部分
您可以通过以下三种方式添加该部分。
| 方法 | 命令 |
|---|---|
| 手动添加 | 直接编辑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] 部分的项目可以从前两种方法中任选其一。这两种方法均可用于编写该部分。
第三种方法虽然便于迁移,但作用范围有限。同时传递--os-min和--os-version。install会先解析您的操作系统目标版本,再写入内容。如果项目缺少 [os.version] 部分和--os-version值,则会操作失败并报错缺少操作系统版本,不会写入任何内容。同时使用这两个标记,可设置min、写入target,并根据📝 在manifest.toml中设置[os.version] min = "<v>"进行确认。
第三种方法还会受到以下三项限制:
-
--os-min仅在搭配--fix使用时生效。单独运行vega project install --fix或install <程序包>均不会添加该部分。 -
--dry-run可预览更改项,但不会实际写入。 -
已存在
[os.version]时,这种方法仅写入min,不会更改target。因此,旧版[os]部分可用作现有部分。要更改target,请运行vega project update-manifest。
要通过命令行验证清单的操作系统版本配置,请运行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。请勿自行写入操作系统版本模块ID,因为update-manifest会从SDK兼容性清单中解析经验证的正确ID。手动输入的ID如与预期格式不匹配,则无法通过vega project doctor验证。相关主题
Last updated: 2026年8月10日

