- ランタイムの競合の防止:リンカーの不一致やアプリのクラッシュの原因となる可能性のある、システム提供のバイナリがバンドルされていないことを確認します。
- パッケージサイズの削減:冗長なシステムバイナリが排除され、VPKGが無駄のない状態に保たれていることを確認します。
- プラットフォーム互換性の確保:アプリがプラットフォームテスト済みの正しいバイナリバージョンを使用していることを保証します。
- Amazonアプリストアの要件への準拠:Amazonアプリストアへの申請前に必要な検証を実行します。
しくみ
厳密なABIチェックは、ビルドプロセス中に以下の2つの重要な要件を検証することでバイナリ互換性を確保します。ルール1:システムABIバイナリをバンドルしない
Vegaの公式ABIリストに記載されているバイナリはシステムによって提供されます。パッケージでは、これらのバイナリをバンドルしないようにする必要があります。 代わりに必要な手順: システムバイナリに動的にリンクします。これらのバイナリは、どのVegaデバイスでも実行時に利用できます。ルール2:すべてのバイナリ依存関係を満たす
パッケージ内のすべてのバイナリ依存関係は、次のいずれかの形で解決される必要があります。- VPKG内にバンドルされている
- Vegaの公式ABIリストに含まれている
パッケージの検証
デフォルトでは、vega exec vpt validateは厳密なABIチェックを実行して、パッケージがAmazonアプリストアの申請要件を満たしているかどうかを確認します。この確認は、--no-strict-abi-checkフラグを渡すことでスキップできます(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-*

