2012-05-10 6 views
2

я writed динамической библиотеки, которая загружается в некоторых целевых приложения путем установки переменной среды с именем DYLD_INSERT_LIBRARIES, нагрузка dylib и работает хорошо, когда приложение выполняется из терминала с помощью этого команды:LSEnvironment раздел info.plist не влияет.

$ export DYLD_INSERT_LIBRARIES=/path/to/mylib.dylib 
$ /path/to/application.app/Contents/MacOS/executable 

Затем я установить значение DYLD_INSERT_LIBRARIES пути редактирование раздела LSEnvironment в файле info.plist. Некоторые стандартные приложения Apple, такие как TextEdit и Calculator, успешно загружают мою библиотеку, но эти настройки не влияют на такие приложения, как InDesign, Photoshop, ...

Почему переменные envronment не установлены для некоторых приложений? У кого-нибудь есть идея? Thankyou.

+0

ли вы какие-либо объяснения для этого? Я также борюсь с этим. – Jamie

+0

Нет, я не нашел объяснений. Теперь я использую прокси-исполняемый файл для ввода моей библиотеки в приложения. –

+0

Означает ли это, когда вам нужно внедрить вашу библиотеку при запуске процесса? Не могли бы вы дать мне ссылку, где я могу узнать больше? – Jamie

ответ

0

Как вы не далее указать, я предполагаю, что вы запускаете Photoshop и т.п. через терминал тоже (?) Что делает эти переменные окружения, установленные в LSEnvironment неэффективна, как это используется только процессы запускаются через «Launch Services». ..

Если запустить его с помощью «Launch Services», вы убедитесь, что ваша библиотека не просто выгружается через dlclose() в программе? ...

+0

Я начинаю его с Finder. «Вы проверили, что ваша библиотека не просто выгружается программой dlclose()?» : моя библиотека никогда не загружается. –

+0

У меня также есть проблемы с этим. Кто-нибудь нашел решение? – Jamie