Связывание фреймворков с плагинами QuickLook

Я пытаюсь написать генератор QuickLook. Для этого мне нужно создать ссылку на созданный мной фреймворк. Однако, как только я связываюсь с указанным фреймворком, qlmanage отказывается загружать мой плагин, сообщая мне:

[ERROR] Can't load plug-in at /path/to/my-ql.qlgenerator: The bundle “my-ql” couldn’t be loaded because it is damaged or missing necessary resources.

Я прочитал все соответствующие руководства по связыванию, фреймворкам и QuickLook, но не нашел ответа.

Вещи, которые я обнаружил / исключил до сих пор.

  • Архитектура: при включении Framework в виде 32-битного двоичного файла происходит сбой всего процесса связывания, поэтому, похоже, это не проблема.
  • Я проверил, что Фреймворк копируется в пакет плагина в Contents / Frameworks .
  • Путь установки фреймворка установлен на @executable_path /../ Frameworks

Кроме того, при использовании фреймворка в другом приложении , все идет хорошо. Единственное возможное объяснение, которое я могу понять, заключается в следующем: при выполнении qlmanage @executable_path фактически указывает на этот двоичный файл, и поэтому моя структура никогда не обнаруживается. Если это так, как я должен установить путь установки, чтобы по-прежнему разрешать расположение относительно плагина? Я не хочу устанавливать свой фреймворк глобально.

EDIT

otool -L во встроенном плагине QuickLook дает следующее:

/System/Library/Frameworks/QuickLook.framework/Versions/A/QuickLook (compatibility version 1.0.0, current version 327.4.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 38.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 44.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.29.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 15.0.0)
@executable_path/../Frameworks/PESHandler.framework/Versions/A/PESHandler (compatibility version 1.0.0, current version 1.0.0) <== *this is my framework*
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)

otool -D в моем фреймворке дает следующее:

@executable_path/../Frameworks/PESHandler.framework/Versions/A/PESHandler

Платформа не требует сборки мусора.

6
задан Raphael Schweikert 28 April 2011 в 16:36
поделиться