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提供以下命令类别。有关命令及其最新选项的完整列表,请使用vega exec vpt --help

程序包信息

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

info

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

已复制到剪贴板。

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

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

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

示例:

vega exec vpt info /path/to/sampleapp.vpkg

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

show-contents

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

已复制到剪贴板。

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

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

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

示例:

vega exec vpt show-contents /path/to/ampleapp.vpkg

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

程序包创建和提取

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

pack

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

已复制到剪贴板。

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

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

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

示例:

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

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

unpack

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

已复制到剪贴板。

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

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

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

示例:

vega exec vpt unpack /path/to/sampleapp.vpkg --dest-path /path/to/output

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

dump

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

已复制到剪贴板。

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

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

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

示例:

vega exec vpt dump /path/to/sampleapp.vpkg manifest.toml

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

extract-locales

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

已复制到剪贴板。

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

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

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

示例:

vega exec vpt extract-locales --format json /path/to/sampleapp.vpkg

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

程序包签名和验证

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

pull

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

已复制到剪贴板。

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

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

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

示例:

vega exec vpt pull --signature /path/to/sampleapp.vpkg /path/to/output/digest.sig

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

push

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

已复制到剪贴板。

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

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

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

示例:

vega exec vpt push --signature /path/to/input/digest.sig /path/to/sampleapp.vpkg

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

sign

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

已复制到剪贴板。

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

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

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

示例:

vega exec 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

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

已复制到剪贴板。

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

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

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

示例:

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

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

checksum

计算程序包校验和。

已复制到剪贴板。

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

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

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

示例:

vega exec vpt checksum /path/to/sampleapp.vpkg

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

generate-csr

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

已复制到剪贴板。

用法:vega exec vpt generate-csr [选项]

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

示例:

vega exec 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

运行验证检查,检查是否满足应用商店的提交要求:

  1. 验证程序包清单中所需的配置和语法是否正确。请参阅清单用户指南

  2. 验证应用的原生代码的捆绑库或声明的依赖项是否符合Vega的ABI要求

已复制到剪贴板。

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

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

选项:
      --no-strict-abi-check 禁用严格的ABI检查
      --no-color 禁用彩色输出
  -h, --help                         输出帮助信息

示例:

vega exec vpt validate sampleapp.vpkg

// 输出
validating 'sampleapp.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.sampleapp'
  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

starting ABI validation ...
found issues in ABI validation ...
Missing dt_needed dependencies found:
  - Library 'libsample-app.so.0.1.0' at path '/sampleapp/lib/arm/libsample-app.so.0.1.0' has missing dt_needed dependencies: libsample-deps.so
Missing dlopen dependencies found:
  - Library 'libsample-app.so.0.1.0' at path '/sampleapp/lib/arm/libsample-app.so.0.1.0' has missing dlopen dependencies: libsample-deps.so

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

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

    已复制到剪贴板。

    vega exec vpt pull --json-signature /path/to/sampleapp.vpkg /path/to/output/digest.json.sig
    
    // 输出
    Extracting signature from sampleapp.vpkg
    Signature saved to /path/to/output/digest.json.sig
    
  2. 使用您的私钥和证书更新签名文件::

    已复制到剪贴板。

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

    已复制到剪贴板。

    vega exec vpt push --json-signature /path/to/input/digest.json.sig /path/to/sampleapp.vpkg
    
    // 输出
    Adding signature to sampleapp.vpkg
    Signature successfully added
    

Last updated: 2025年12月22日