使用严格的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日

