Recently I found something interesting: Setting environment variables for user processes. If you are an old Unix hand, your first reaction was probably like mine: Huh? What's the big deal: set whatever you want in /etc/profile or ~/.bash_profile.
Ah, but we forget: Mac OS X isn't entirely a traditional Unix system: processes don't necessarily start from a shell. The initial login is LoginWindow, which starts up the Dock and Finder.. what if you want a non-shell app to have an environment variable set?
Well, as the TechNote article describes, it's not very hard: you just need to create ~/.MacOSX/environment.plist for the user and populate it appropriately. They give a simple example at that link.
But why would you need to do this? Maybe for an app of your own design, but you'd have control of that anyway. Why would you want to set variables for other Mac apps?
The answer is debugging. Many Mac apps and system services are controlled by preference files or the mere existence of some particular file, but others trigger debugging or other actions because of environment variables. Of course a lot of that is detailed at the Developer Connection in Technical Note TN2124 Mac OS X Debugging Magic.
Apple's Developer Connection is full of helpful stuff like that. It's definitely not "for developers only".
Got something to add? Send me email.
More Articles by Anthony Lawrence © 2012-07-10 Anthony Lawrence
The idea of "work, then get paid" has been deeply ingrained in our culture by employers who want to limit their risk. Well, I like to limit my risks also. I like to get paid before I do work. (Tony Lawrence)