Пусть XCode установит @executable_path, где автоматически искать dylib

#xcode #dylib #install-name-tool

#xcode #dylib #install-name-tool

Вопрос:

Я создаю свое приложение OSX с использованием XCode 5.1.1 и ссылаюсь на .dylib. Я настроил этапы сборки -> Копировать файлы для копирования .dylib в месте назначения фреймворков.

Когда я запускаю из XCode, он работает нормально, но когда я дважды щелкаю запуск .app bundle из Finder, он жалуется, что не может найти dylib, который XCode послушно разместил в разделе Contents / Frameworks, что можно легко проверить в finder.

otool -L в моем исполняемом файле показывает, что он ищет

 @loader_path/libXYZ.dylib (compatibility version 1.0.0, current version 1.0.0)
  

Я могу легко обойти это, используя install_name_tool в моем исполняемом файле следующим образом:

 install_name_tool -change @loader_path/libXYZ.dylib @executable_path/../Frameworks/libXYZ.dylib  my_exec
  

но это изменение, очевидно, теряется при каждой повторной сборке. Как я могу сказать XCode, чтобы он в первую очередь настроил @executable_path../Frameworks?

Ответ №1:

Просто добавьте этап запуска сценария к этапам сборки.

Комментарии:

1. Как мне перейти на компакт-диск в папку, в которой находится приложение?