I recently downloaded an app that I wanted to run without a dock icon. There wasn’t a preference to run that way, but I remembered that there was a way to edit a file within each app’s “bundle” (.app “files” are actually folders or packages).
Sure enough, a little time on Google brought me to information about adding or changing the “LSUIElement” key in the app’s Info.plist file. It also led me to Dockess which was an app which would automatically set that key for you, simply by dragging the app to Dockless’ window.
That seemed much safer than editing the file myself, so I downloaded Dockless, dragged the app to it, and restarted the app.
It crashed immediately. And every time afterwards.
I’m no math whiz, but I can put two and two together. I emailed the developer, who confirmed my suspicion that editing the app that way had broken Code Signing, a feature which Apple introduced in 10.5 and which is now an essential part of most current apps, including apps from the Mac App Store. The solution was simple: delete the app and re-download a clean copy from the Mac App Store. (Running Dockless again to “undo” the change was not enough in my experience.)
Just for the sake of completeness, I tried Dock Dodger, another application designed to do the same thing. To the developer’s credit, there is a disclaimer on their website that you “you may get some strange behavior or find some features inaccessible” after using it. I made a copy of iCal, and ran Dock Dodger on the copy. It ran without a dock icon, but it also refused to store my MobileMe password, meaning that my calendars would not sync via MobileMe.
Lesson learned. Being able to coerce apps to run without a dock icon might have been something we could get away with in the past, but it was never a very good idea, and like Lando’s deal with Darth Vader, it’s getting worse all the time.
Fortunately I’ve noticed more and more applications which give users a preference setting to turn off the dock icon. If app developers build this into their apps, the feature doesn’t break code signing, and so the apps will continue to function normally.
So what should you do if you find an app that you want to run “dockless” but it doesn’t have a preference setting for it? Well, if you want to try one of the above apps (which I do not recommend), be sure to make a copy of the app, and try the changes on the copy. That way if it doesn’t work, you can trash the copy and still have your “clean” original. My recommendation is to contact the developer and ask (nicely) for them to consider adding the feature in a future version. Developers weigh new feature requests based on a number of different things, but user requests are an important part of that decision process. It may not be feasible for all applications, but if you don’t ask, they’ll never know it was a feature you wanted.