as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

对Vega应用程序包使用VPT

对Vega应用程序包使用VPT

VPT可管理Vega应用程序包。可使用它来创建、检查、管理和验证.vpkg文件(Vega的标准程序包格式)。

要开始使用VPT,请安装Vega软件开发工具包 (SDK),其中包括两个主要命令行工具:

  • VPT - 管理创建和验证等程序包操作
  • Vega CLI - 处理整个应用开发工作流程,包括构建和部署应用

虽然Vega CLI在应用构建期间使用VPT,但您也可以直接运行VPT来:

  • 检查程序包
  • 验证内容
  • 为您的应用添加自定义签名

命令

VPT提供以下命令类别。有关命令及其最新选项的完整列表,请使用vpt help

程序包信息

这些命令可用来查看程序包的详细信息和内容。

info

示出程序包信息,包括ID、标题和版本详细信息。(注意:界面显示内容均为英文。此处中文译文仅供参考。)

已复制到剪贴板。

用法:vpt info [选项] <程序包>

参数:
<程序包>          vpkg的路径

选项:
  --json           JSON格式输出
  -h, --help       输出帮助信息

示例:

vpt info /path/to/keplersampleapp.vpkg

// 输出
Sample App    com.amazondeveloper.keplersampleapp v1.3.4 b53

show-contents

列出程序包中的所有文件。

已复制到剪贴板。

用法:vpt show-contents [选项] <程序包>

参数:
  <程序包>     vpkg的路径

选项:
  -h, --help    输出帮助信息

示例:

vpt show-contents /path/to/keplersampleapp.vpkg

// 输出
Package contents:
assets/ (6 files)
lib/ (2 files)
manifest.toml
meta-info/ (4 files)

程序包创建和提取

以下命令可用来创建和修改程序包。

pack

从源目录创建程序包。您可以指定程序包名称、版本和内部版本号。

已复制到剪贴板。

用法:vpt pack [选项] <源路径>...

参数:
  <源路径>... 源目录

选项:
  -n, --pkg-name <程序包的名称>          程序包的名称
  -d, --dest-path <目标路径>        目标路径
  -b, --build-number <内部版本号>  内部版本号
  -v, --version <版本>            内部版本
      --validate                     强制验证清单
  -h, --help                         输出帮助信息

示例:

vpt pack /path/to/source --pkg-name keplersampleapp --dest-path /path/to/output --version 1.0.0 --build-number 42

// 输出
Creating package keplersampleapp...
Validating manifest...
Package created at /path/to/output/keplersampleapp.vpkg

unpack

将所有程序包文件提取到目标路径。

已复制到剪贴板。

用法:vpt unpack [选项] <程序包>

参数:
  <程序包>                    vpkg的路径

选项:
  -d, --dest-path <目标路径>  目标路径
  -h, --help                   输出帮助信息

示例:

vpt unpack /path/to/keplersampleapp.vpkg --dest-path /path/to/output

// 输出
Extracting package contents...
Files extracted to /path/to/output

dump

从程序包中提取文件。打印到stdout,或保存到您指定的目标路径。

已复制到剪贴板。

用法:vpt dump [选项] <程序包> <条目>

参数:
  <程序包>                    vpkg的路径
  <条目>                      vpkg内条目的路径

选项:
  -d, --dest-path <目标路径>  目标路径
  -h, --help                   输出帮助信息

示例:

vpt dump /path/to/keplersampleapp.vpkg manifest.toml

// 输出
Extracting manifest.toml from keplersampleapp.vpkg
Content written to stdout

extract-locales

以JSON或文本形式从程序包中提取本地化文件。

已复制到剪贴板。

用法:vpt extract-locales [选项] <程序包>

参数:
  <程序包>                           vpkg的路径

选项:
  -f, --format <格式>               输出格式 [默认值:json] [可能值:json、text]
  -h, --help                          输出帮助信息

示例:

vpt extract-locales --format json /path/to/keplersampleapp.vpkg

// 输出
Extracting localization files...
Files extracted to current directory:
- en/strings.json
- es/strings.json

程序包签名和验证

这些命令用来处理安全和验证。

pull

从程序包中提取摘要和签名文件。摘要文件列出了VPKG中所有文件的加密校验和,而签名文件则包含分离的加密签名,该签名用于验证摘要文件的真实性。使用--json-digest提取JSON格式的摘要文件,或使用--json-signature提取JSON格式的签名文件。

已复制到剪贴板。

用法:vpt pull [选项] <--signature|--digest|--json-signature|--json-digest> <程序包> <目标>

参数:
  <程序包>           vpkg的路径
  <目标>              目标路径

选项:
  --signature
  --digest
  --json-signature
  --json-digest
  -h, --help          输出帮助信息

示例:

vpt pull --signature /path/to/keplersampleapp.vpkg /path/to/output/digest.sig

// 输出
Extracting signature from keplersampleapp.vpkg
Signature saved to /path/to/output/digest.sig

push

向程序包中添加签名文件。使用--json-signature插入与程序包摘要相对应的JSON格式签名文件。

已复制到剪贴板。

用法:vpt push [选项] <--signature <签名>|--json-signature <JSON签名>> <程序包>

参数:
  <程序包>                           vpkg的路径

选项:
  --signature <签名>             要推送的摘要文件的旧签名路径
  --json-signature <JSON签名>   要推送的digest.json文件的签名路径
  -h, --help                          输出帮助信息

示例:

vpt push --signature /path/to/input/digest.sig /path/to/keplersampleapp.vpkg

// 输出
Adding signature to keplersampleapp.vpkg
Signature successfully added

sign

使用私钥和证书对消息进行签名。

已复制到剪贴板。

用法:vpt sign [选项] <消息> <私钥> <证书文件> <输出文件>

参数:
  <消息>      要签名的消息
  <私钥>      用于消息签名的私钥
  <证书文件>     与私钥对应的X.509证书
  <输出文件>   输出路径

选项:
  -r, --resign   重新签名已签名的消息
  -h--help     输出帮助信息

示例:

vpt sign --resign /path/to/input/digest.sig /path/to/developer-private.key /path/to/developer-cert.pem /path/to/output/digest.sig

// 输出
Signing digest.sig with provided key and certificate
Signature created at /path/to/output/digest.sig

verify

使用指定的证书验证消息的签名。

已复制到剪贴板。

用法:vpt verify [选项] <消息文件> <签名文件> <证书>...

参数:
  <消息文件>      要验证的文件
  <签名文件>          用于验证消息的签名
  <证书>... 要验证的X.509证书列表

选项:
  -p, --partial      仅使用提供的CA执行部分/非详尽验证
  -h, --help         输出帮助信息

示例:

vpt verify /path/to/message.txt /path/to/message.sig /path/to/cert.pem

// 输出
Verifying signature...
Signature verification successful

checksum

计算程序包校验和。

已复制到剪贴板。

用法:vpt checksum [选项] <程序包>

参数:
  <程序包>     vpkg的路径

选项:
  -h, --help    输出帮助信息

示例:

vpt checksum /path/to/keplersampleapp.vpkg

// 输出
Calculating checksum...
SHA256: a1b2c3d4e5f6...

generate-csr

从配置文件创建证书签名请求 (CSR)。

已复制到剪贴板。

用法:vpt generate-csr [选项]

选项:
  -k, --key <密钥>        私钥
  -c, --config <配置>  配置文件
  -o, --out <输出>        输出目录
  -v, --verbose          输出生成的CSR路径
  -h, --help             输出帮助信息

示例:

vpt generate-csr -k /path/to/private.key -c /path/to/config.json -o /path/to/output/dir -v

// 输出
Reading configuration from config.json
Generating CSR using private.key
CSR created at /output/dir/certificate.csr

程序包分析

以下命令用来验证程序包的结构和内容。

validate

检查您的程序包清单是否符合亚马逊应用商店要求。

有关规则的信息,请参阅清单用户指南

已复制到剪贴板。

用法:vpt validate [选项] <路径>

参数:
  <路径>        vpkg、目录或manifest.toml的路径

选项:
  --no-color    禁用彩色输出
  -h, --help    输出帮助信息

示例:

vpt validate keplersampleapp.vpkg

// 输出
validating 'keplersampleapp.vpkg' ...
analyzing manifest.toml ...
found issues in manifest.toml ...
manifest validation found 2 errors
manifest.toml:3:1 info: [package.icon] Icon isn't defined in the manifest.Using system default.
  help: Define an icon to help users recognize your app
manifest.toml:15:6 error: [components.interactive.id] Component ID 'com.company.sample.badcomponentname' doesnt have package ID prefix 'com.amazondeveloper.keplersampleapp'
  help: Component ID should follow the format: package_id.component_name
manifest.toml:9:1 error: [components.interactive.categories] No interactive component declares 'com.amazon.category.main' category.App can't launch without package-id or package ASIN.
  help: One interactive component should declare 'com.amazon.category.main' category in the manifest

为您的程序包创建自定义签名

  1. 从程序包中拉取签名文件:

    已复制到剪贴板。

    vpt pull --json-signature /path/to/keplersampleapp.vpkg /path/to/pulled/digest.json.sig
    
    // 输出
    Extracting signature from keplersampleapp.vpkg
    Signature saved to /path/to/pulled/digest.json.sig
    
  2. 使用您的私钥和证书对拉取的digest.json.sig文件进行签名:

    已复制到剪贴板。

    vpt sign --resign /path/to/pulled/digest.json.sig /path/to/developer-private.key /path/to/developer-cert.pem /path/to/signed/digest.json.sig
    
    // 输出
    Signing digest.json.sig with provided key and certificate
    Signature created at /path/to/signed/digest.json.sig
    
  3. 将已签名的签名文件推送回程序包:

    已复制到剪贴板。

    vpt push --json-signature /path/to/signed/digest.json.sig /path/to/keplersampleapp.vpkg
    
    // 输出
    Adding signature to keplersampleapp.vpkg
    Signature successfully added
    

Last updated: 2025年9月30日