Я только что сделал это с помощью проекта Module Bundle. Это было включено в более крупный проект с отдельным исполняемым файлом.
Я добавил шаг «Копировать dylibs в frameworks», который копировал dylibs в /Foobar.bundle/Contents/Frameworks/Foobar/. Затем я добавил фазу запуска сценария для запуска в качестве последнего шага, чтобы исправить имена установки dylibs в исполняемом файле:
install_name_tool -change libBobDylan.dylib @executable_path/../Plugins/Foobar.bundle/Contents/Frameworks/Foobar/libBobDylan.dylib path/to/build/product/Foobar.Bundle/Contents/MacOS/Foobar
Конечно, libBobDylan.dylib также связан с libBillyIdol.dylib. Поэтому мне пришлось добавить еще одну фазу запуска сценария в самом начале цели, чтобы исправить имена установки здесь:
install_name_tool -change libBillyIdol.dylib @executable_path/../Plugins/FooBar.bundle/Contents/Frameworks/Foobar/libBillyIdol.dylib local/path/to/libBobDylan.dylib
У меня было более дюжины из них, чтобы связать их; Мне пришлось убедить поставщика dylibs дополнить их заголовок, чтобы учесть мои многочисленные изменения install_name ...