IBPlugin и пути к фреймворку - PullRequest
3 голосов
/ 24 января 2010

Сбой IBCocoaSimulator, когда IB не может найти фреймворк, я полагаю, что это происходит и с вами. Я могу запустить IBCocoaSimulator без сбоев, когда я вручную копирую свой фреймворк + ibplugin из каталога сборки в /Users/username/Library/Frameworks. Я делаю это с Finder, это не оптимально, но работает.

Я искал более разумный способ и каждое решение (BWToolkit, BGHUDAppKit, KTUIKit), на которое я смотрел, делает вещи по-разному . Одно из решений запускает сценарий sudo, который копирует его в общесистемную /Library/Frameworks. Другой устанавливает @loader_path, а еще один использует @executable_path. Мне не повезло ни с одним из них, и из-за огромных различий шаблон трудно разглядеть.

Я в замешательстве.

Как настроить IBPlugin, чтобы вы могли встроить его в свое приложение?


ОБНОВЛЕНИЕ 1:

Да, решил, прочитав в блоге от dribin о том, как использовать @rpath, я понял, как заставить его работать с моими IBPlugins. Поэтому копирование с использованием Finder больше не требуется.

То, что я сделал, было:

  1. Для набора MySmallFramework от Installation Directory до @rpath
  2. Для MySmallPlugin установите Runpath Search Paths в @loader_path/../Frameworks
  3. Для MySmallApp установите Runpath Search Paths в @loader_path/../Frameworks

Nice.

Ответы [ 2 ]

1 голос
/ 24 декабря 2011

Вы можете вызвать это с помощью внешнего проекта make-файла xcode из файла сборки ibplugin, как показано в следующем примере:

install_name_tool -change @loader_path/MyPluginName.framework/MyPluginName @loader_path/<absolute path or level to updirectory>/MyPluginName.framework/MyPluginName $(BINDIR)/MyPluginName.ibplugin/Contents/MacOS/MyPluginName
1 голос
/ 17 июля 2010

Может показаться очевидным для большинства из вас, но решение neoneye, опубликованное в его «Обновлении 1», требует, чтобы ваша цель плагина имела фазу сборки «копировать файлы инфраструктуры» с данный каркас, присвоенный .

(пока не хватает очков для прямого комментирования :( отсюда и ответ на пост)

...