Contents/Info.plist
に
を追加。インストール先が固定の場合に使用可能。dylibの場所をフルパスで指定しているため。Info.plist内の表記方法でインストール先を知ることができるかどうか不明。
<key>LSEnvironment</key>
<dict>
<key>DYLD_LIBRARY_PATH</key>
<string>/Applications/Hoge.app/Contents/MacOS</string>
</dict>- Contents/MacOSに
のようなシェルスクリプト(たとえばPrelude)を置き、
#!/bin/sh
APPPATH="${0%/*}"
export DYLD_LIBRARY_PATH="$APPPATH/lib"
exec "$APPPATH/Hoge" "$@"Contents/Info.plist
のCFBundleExecutable
にシェルスクリプトファイル名を書く。
<key>CFBundleExecutable</key>
<string>Prelude</string>
これによりアプリケーションをどこに置いても、指定したシェルスクリプトから置いた場所を取得できるので、アプリケーションが起動する前に環境変数DYLD_LIBRARY_PATH
を設定したり、いろんなことができる。
ということで後者がオススメ。
アプリケーション内のInfo.plistは何かがキャッシュしているらしく、Info.plistを書き換えてアプリケーション起動しても反映されない場合あり。その場合はアプリケーションを一旦別のフォルダに移動させてすぐ戻せば良し。Info.plistを書き換えるたびにフォルダ移動させると吉。これでかなり悩んだ orz