厳密なABIチェックによるパッケージの検証
厳密なアプリケーションバイナリインターフェイス(ABI)チェックは、VegaアプリがVega OSとのバイナリ互換性を維持し、Amazonアプリストアの申請要件を満たしていることを確認するためのビルド時検証ツールです。
厳密なABIチェックは、パッケージが次の要件を満たしていることを検証します。
-
ランタイムの競合の防止: リンカーの不一致やアプリのクラッシュの原因となる可能性のある、システム提供のバイナリがバンドルされていないことを確認します。
-
パッケージサイズの削減: 冗長なシステムバイナリが排除され、VPKGが無駄のない状態に保たれていることを確認します。
-
プラットフォーム互換性の確保: アプリがプラットフォームテスト済みの正しいバイナリバージョンを使用していることを保証します。
-
Amazonアプリストアの要件への準拠: Amazonアプリストアへの申請前に必要な検証を実行します。
しくみ
厳密なABIチェックは、ビルドプロセス中に以下の2つの重要な要件を検証することでバイナリ互換性を確保します。
ルール1: システムABIバイナリをバンドルしない
Vegaの公式ABIリストに記載されているバイナリはシステムによって提供されます。パッケージでは、これらのバイナリをバンドルしないようにする必要があります。
代わりに必要な手順: システムバイナリに動的にリンクします。これらのバイナリは、どのVegaデバイスでも実行時に利用できます。
ルール2: すべてのバイナリ依存関係を満たす
パッケージ内のすべてのバイナリ依存関係は、次のいずれかの形で解決される必要があります。
- VPKG内にバンドルされている
- Vegaの公式ABIリストに含まれている
依存関係が不足している場合、ABIチェックは失敗します。
パッケージの検証
デフォルトでは、vega exec vpt validateは厳密なABIチェックを実行して、パッケージがAmazonアプリストアの申請要件を満たしているかどうかを確認します。
プロンプトで、次のように入力します。
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-*
一般的なワークフロー
Amazonアプリストアへの申請前
Amazonアプリストアにアプリを申請する前に、必ず厳密なABIチェックを実行します。
プロンプトで、次のように入力します。
vega exec vpt validate myapp.vpkg
CI/CDとの統合
ABI検証を継続的インテグレーションパイプラインに統合すると、互換性の問題を早期に検出できます。
プロンプトで、次のように入力します。
# CI/CDの検証ステップの例
vega exec vpt validate ${BUILD_ARTIFACT}
関連トピック
- アプリの管理・通信ツール
- VegaアプリパッケージでのVPTの使用
- Loggingctlを使用したシステムログの管理
- Vega CLI
- Vega StudioパフォーマンスCLI
- Vega Studioのコマンド
Last updated: 2025年12月22日

