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

В настоящее время я пытаюсь внедрить «сторонний фреймворк» (FeedbackReporter.Framework) в мою панель настроек.

К сожалению, я все время получаю следующую ошибку при попытке запустить панель настроек:

16.05.10 23:13:30 Системные настройки [32645] dlopen_preflight не удалось с dlopen_preflight (/Users/me/Library/PreferencePanes/myPane.prefPane/Contents/MacOS/myPane): Библиотека не загружена: @executable_path /../ Каркасы / FeedbackReporter.framework / Версии / А / FeedbackReporter Ссылка от: /Users/me/Library/PreferencePanes/myPane.prefPane/Contents/MacOS/myPane Причина: изображение не найдено для /Users/me/Library/PreferencePanes/myPane.prefPane

Насколько я читал, эта проблема, вероятно, вызвана тем, что мой prefPane не является реальным приложением, а является "плагином" "System Settings.app" и, таким образом, @executable_path разрешает путь внутри пакета этого приложения. вместо пачки моего префана.

Но я не совсем понял, как решить эту проблему. Я предполагаю, что это должно быть довольно легко, так как это должен быть обычный случай, когда люди используют не-apple-фреймворки в PreferencePanes.

Спасибо за ваши подсказки!

- Краткое обновление: Насколько я понял тонны документов, которые я прочитал, может быть настройка, которая должна быть сделана в сторонней структуре. Очевидно, что «путь установки» должен быть установлен как «loader_path», а не «executetable_path», чтобы работать в предпочтительной области.

Но так как я использую предварительно скомпилированный фреймворк (FeedbackReporter.framework), это, вероятно, параметр, который автор должен изменить ?! и даже если бы я мог сам скомпилировать фреймворк, я понятия не имел, где изменить этот путь_установки в XCode.

Ответы [ 2 ]

1 голос
/ 17 мая 2010

Если вы не можете дождаться следующего выпуска, просто скачайте исходный код, измените его на

FeedbackReporter.xcodeproj/project.pbxproj

, а затем откройте и скомпилируйте фреймворк самостоятельно.

0 голосов
/ 17 мая 2010

На самом деле, вы можете изменить его самостоятельно, без перекомпиляции стороннего фреймворка. Вы можете использовать install_name_tool, чтобы изменить, где двоичный файл MachO будет искать библиотеки общих объектов. Сначала используйте otool -L <binary file for your plugin>, чтобы получить пути туда, где он ожидает свои библиотеки, затем используйте install_name_tool -change ..., чтобы изменить пути в этом файле. Повторите для любых связанных рамок.

...