MacのUnity Pluginはbundle形式になっています。bundleをビルドする際、bundleからサードパーティのdylibを読み込みたい場合があります。

通常の手順でdylibをリンクし、bundleをビルドした場合、otool -Lでbundleの依存関係を表示すると以下のようになります。

otool -L mybundle
mybundle:
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1454.90.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)
@rpath/libthirdparty.dylib (compatibility version 0.0.0, current version 0.0.0)

このとき、@rpathからlibthirdparty.dylibが読み込まれるように設定されていますが、@rpathは$PATHなため、Unityから読み込めません。

そこで、install_name_toolで@rpathを@loader_pathに書き換えます。

install_name_tool -change @rpath/libthirdparty.dylib @loader_path/../Frameworks/libthirdparty.dylib mybundle

その上で、以下のようにContents/Frameworlsにdylibを配置すれば、dylibへのパスが通ります。

mybundle.bundle/Contents/MacOS/mybundle
mybundle.bundle/Contents/Frameworks/libthirdparty.dylib