as

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

使用严格的ABI检查来验证您的程序包

使用严格的ABI检查来验证您的程序包

“严格的应用二进制接口 (ABI) 检查”是一种构建时验证工具,可确保您的Vega应用保持与Vega OS的二进制兼容性并满足亚马逊应用商店的提交要求。

严格的ABI检查可验证您的程序包:

  • 防止运行时冲突: 避免捆绑系统提供的二进制文件,这可能会导致链接器不匹配和应用程序崩溃

  • 减小程序包大小: 消除冗余的系统二进制文件以保持VPKG精益

  • 确保平台兼容性: 保证您的应用使用正确的、经过平台测试的二进制版本

  • 符合亚马逊应用商店要求: 在亚马逊应用商店进行提交之前需要进行验证

工作方式

严格的ABI检查通过在构建过程中验证两个关键要求来强制实现二进制兼容性:

规则1: 不要捆绑系统ABI二进制文件

如果二进制文件出现在官方Vega ABI列表中,则该二进制文件由系统提供。您的程序包不得捆绑这些二进制文件。

应当做什么: 动态链接系统二进制文件。它们在运行时可在所有Vega设备上使用。

规则2: 满足所有二进制依赖项要求

程序包中的每个二进制依赖项都必须:

  • 捆绑在您的VPKG中,或者
  • 列在官方Vega ABI清单上

缺少依赖项会导致ABI检查失败。

验证您的程序包

默认情况下,vega exec vpt validate命令会执行严格的ABI检查,以确保您的程序包符合亚马逊应用商店的提交要求。

在提示符处,输入:

vega exec vpt validate myapp.vpkg

ABI检查因“bundled system binary”(已捆绑的系统二进制文件)错误而失败

您的程序包含有系统提供的二进制文件。从您的程序包中删除二进制文件,并确保您改为动态链接它。

ABI检查因“unsatisfied dependency”(未满足依赖项要求)错误而失败

您的程序包具有二进制依赖项,该依赖项既未捆绑在系统上也未在系统上提供。要么将所需的二进制文件捆绑在您的VPKG中,要么验证它列在官方Vega ABI列表中。

请参阅对Vega应用程序包使用VPT,了解其他验证选项和详细用法。

官方Vega ABI列表

以下系统库由Vega OS提供,不得捆绑在您的程序包中:

标准C库:

  • libc.so.6
  • libdl.so.2
  • libm.so.6
  • libpthread.so.0
  • librt.so.1
  • libutil.so.1

特定于平台的库:

  • libapmf.so
  • libkeplerscript.so

动态链接器:

  • ld-linux-*

常见工作流程

在亚马逊应用商店提交之前

在将您的应用提交到亚马逊应用商店之前,请务必运行严格ABI检查。

在提示符处,输入:

vega exec vpt validate myapp.vpkg

CI/CD集成

将ABI验证集成到您的持续集成管道中,以尽早发现兼容性问题。

在提示符处,输入:

# 示例CI/CD验证步骤
vega exec vpt validate ${BUILD_ARTIFACT}

Last updated: 2025年12月22日