2012-05-10 45 views
2

我所著通过设置环境变量命名DYLD_INSERT_LIBRARIES,所述dylib负载加载到一些靶的应用程序和当应用从终端执行由该命令工作正常动态库:info.plist的LSEnvironment部分不起作用。

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

然后,我通过设置DYLD_INSERT_LIBRARIES的值编辑info.plist文件中的LSEnvironment部分。 某些苹果标准应用程序(如TextEdit和Calculator)会成功加载我的图书馆,但此设置不会对诸如InDesign,Photoshop等应用程序产生影响...

为什么对某些应用程序不设置环境变量? 有没有人有关于它的想法? Thankyou。

+0

你有没有发现这方面的任何解释?我也在努力。 – Jamie

+0

不,我没有找到任何解释。我现在使用代理可执行文件将我的库注入到应用程序中。 –

+0

当进程启动时需要注入你的lib时,这是否工作?你能给我一个链接,我可以找到更多? – Jamie

回答

0

由于您没有进一步明确,我假设你启动Photoshop,并通过终端这使得在LSEnvironment设置这些环境变量等等太(?) 无效的,因为这些只是用来 的过程通过“启动服务”启动。 ..

如果通过“启动服务”启动它,你检查你的库是不是只需通过dlclose()由程序卸载?...

+0

我从Finder开始。 “你有没有检查你的库是不是简单地通过dlclose()由程序卸载?” :我的图书馆从不加载。 –

+0

我也有这个问题。任何人都找到解决方案 – Jamie