我编写了一个动态库,它通过设置名为DYLD_INSERT_LIBRARIES的环境变量,dylib加载并加载到某些目标应用程序中,并且在通过以下命令从终端执行应用程序时可以正常工作:

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


然后,我通过编辑info.plist文件中的LSEnvironment部分来设置DYLD_INSERT_LIBRARIES的值。
某些Apple标准应用程序(例如TextEdit和Calculator)成功加载了我的媒体库,但此设置对InDesign,Photoshop等应用程序无效。

为什么没有为某些应用程序设置环境变量?
有人对此有想法吗?
谢谢。

最佳答案

正如您未进一步指定的那样,我假设您也通过终端启动了Photoshop之类的东西(?)
由于仅使用这些环境变量,因此使LSEnvironment中设置的这些环境变量无效
通过“启动服务”启动的流程...

如果通过“启动服务”启动它,是否检查了程序是否仅通过dlclose()卸载了库?

09-07 09:16