Использование фреймворка ConnectionKit в NSBundle - PullRequest
3 голосов
/ 17 февраля 2012

Обновление

С тех пор я провел время, изучая, как использовать install_name_tool & otool, чтобы сделать это правильно, и задокументировал процесс здесь: Использование Frameworks WithinNSBundles


Я хотел бы использовать инфраструктуру Connection Kit в пределах NSBundle, который я создаю.

Чтобы мой пакет мог успешно загрузить структуруЯ изменил dynamic library install name, чтобы использовать @loader_path вместо @executable_path.

Connection Kit dynamic library install name

После сборки и включения фреймворка в мой NSBundle, затем построение этого,При запуске программы, которая загружает мой пакет, мой пакет не загружается и выдает следующий вывод:

Error loading MyBundle.rwplugin/Contents/MacOS/MyBundle:  dlopen(/Users/facelap/Library/Developer/Xcode/DerivedData/MyBundle-hiyhdkndcnuhspfqwcuyneqobeou/Build/Products/Debug/MyBundle.rwplugin/Contents/MacOS/MyBundle, 265): Library not loaded: @executable_path/../Frameworks/DAVKit.framework/Versions/A/DAVKit
  Referenced from: /Users/facelap/Library/Developer/Xcode/DerivedData/MyBundle-hiyhdkndcnuhspfqwcuyneqobeou/Build/Products/Debug/MyBundle.rwplugin/Contents/MacOS/../Frameworks/Connection.framework/Versions/A/Connection
  Reason: image not found

Похоже, что сам Connection Kit использует платформу.

У меня также есть источник дляэто рамки.Я попытался установить для dynamic library install name значение @loader_path, но это привело к аналогичному выводу (и пакет не смог загрузиться).

Какой будет вменяемая запись для dynamic library install name для платформы в рамках, которая должна использоваться в NSBundle?

Ответы [ 2 ]

1 голос
/ 18 мая 2012

Вы должны связать свой пакет с DAVKit и включить его туда так же, как вы подключаете ConnectionKit.Это позволяет избежать нескольких глубин отправляемых каркасов

1 голос
/ 23 февраля 2012

Посмотрите журнал аварий. В нем говорится, что пакет не может загрузить DAVKit.framework, поэтому проще всего - перестроить фреймворк ConnectionKit, но вместо встраивания DAVKit.xcodeproj вставить все источники DAVKit. Его самый простой, но более правильный путь - его установка и установка платформ ConnectionKit и DAVKit. Его ссылка должна помочь вам: встраивание каркасов в загружаемые пакеты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...