OSBundleLibraries

kextを作る時、info.plsitに手作業で依存するライブラリを記述する必要がある。

OSBundleLibrariesにライブラリの識別子と互換性がある最低バージョン版番号を記述する。

例えばこんな感じ。

<key>OSBundleLibraries</key>
<dict>
        <key>com.apple.kpi.iokit</key>
        <string>12.3</string>
</dict>

この時、どのライブラリのどのバージョンに依存しているかは、”kextlibs”コマンドで確認する事が出来る。

例えばこんな感じ。

$ kextlibs PATH/FILE.kext
        For all architectures:
        com.apple.kpi.iokit = 12.3

いちいち手作業でライブラリの依存関係を調べるのは面倒くさいので、一度ビルドした後に”kextlibs”コマンドで、依存関係を出力させて、plsitに転記するのが楽。

また、”kextload”時に

/PATH/FILE.kext - no compatible dependency found for com.apple.kpi.iokit.

とか

Check library declarations for your kext with kextlibs(8).

等のエラーが出た場合も、悩まずに”kextlibs”ですぐにライブラリのidとバージョンを出力させて、info.plsitを確認すると良い。