Macos 启动前为进程设置环境变量

Macos 启动前为进程设置环境变量,macos,bash,shell,applescript,Macos,Bash,Shell,Applescript,我有以下情况: 我有一个Mac OS捆绑应用程序,它使用一些第三方动态库,这些库依赖于一些环境变量,我们把它命名为ENV_VAR。我想为我的应用程序将ENV_VAR设置为某个值,因为如果我为整个系统设置它,它可能会破坏其他一些应用程序。它应该对用户透明,也就是说,用户只需双击应用程序文件夹就可以运行我的应用程序。我怎样才能做到呢 注意:动态库是在主函数开始之前加载的,因此在主函数中设置此变量没有帮助。我不确定以下操作是否有效,因为我没有这样的应用程序可以尝试。其思想是从终端设置环境变量,然后调用

我有以下情况:

我有一个Mac OS捆绑应用程序,它使用一些第三方动态库,这些库依赖于一些环境变量,我们把它命名为
ENV_VAR
。我想为我的应用程序将
ENV_VAR
设置为某个值,因为如果我为整个系统设置它,它可能会破坏其他一些应用程序。它应该对用户透明,也就是说,用户只需双击应用程序文件夹就可以运行我的应用程序。我怎样才能做到呢


注意:动态库是在主函数开始之前加载的,因此在主函数中设置此变量没有帮助。

我不确定以下操作是否有效,因为我没有这样的应用程序可以尝试。其思想是从终端设置环境变量,然后调用您的应用程序:

ENV_VAR=something open -a YourApplication

我不确定以下是否有效,因为我没有这样的应用程序可以尝试。其思想是从终端设置环境变量,然后调用您的应用程序:

ENV_VAR=something open -a YourApplication
您可以向应用程序包的Info.plist添加一个。该值可以是包含键和值字符串的字典,当启动服务启动应用程序时(例如,从Finder或Dock启动,但不是从终端启动),这些键-值对将添加到环境中

这个缓存问题不会影响您的最终用户,只要您调整Info.plist。此外,如果您在source Info.plist中进行更改,然后使用Xcode构建应用程序,则不会对您造成影响。

您可以向应用程序包的Info.plist中添加一个。该值可以是包含键和值字符串的字典,当启动服务启动应用程序时(例如,从Finder或Dock启动,但不是从终端启动),这些键-值对将添加到环境中


这个缓存问题不会影响您的最终用户,只要您调整Info.plist。此外,如果您在source Info.plist中进行更改,然后使用Xcode构建应用程序,则不会影响您。

您的想法绝对正确。但问题是如何将其集成到捆绑包中。很抱歉,我无法在这方面帮助您。也许你应该试试你的想法是绝对正确的。但问题是如何将其集成到捆绑包中。很抱歉,我无法在这方面帮助您。也许你应该试着解释一下!我花了2个多小时试图弄明白为什么我添加到Info.plist的键值对不会被Launch Services设置。很好的解释!我花了2个多小时试图弄明白为什么我添加到Info.plist的键值对不会被Launch Services设置。
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -seed