Multiple installs of the same application?

Is there any way to have multiple installs of the same application (in the same user account)?

Basically, I have several google reader accounts, and I want to be able to have multiple instances of Reeder. As it is, changing accounts at the moment involves restarting the app, and manually typing the different account info in. At that point, you have access to only one of the accounts, and switching involves the whole rigamarole again.

Is there any way I can have something like a sandbox for each instance, with it's own keychain?


I have Xcode installed, and I would imagine there is some mechanism in Xcode for letting programs have separate keychain/info, for when you are testing an app you have compiled. Is there something like this and/or how do you use it?


Solution 1:

The only way to achieve this with applications that do not have native multi-account support would be to patch the CFBundleIdentifier which is also used by the application to find passwords on keychains. You can change that by editing the Info.plist file in the application bundle. This will break the digital signature of the application, so always work on a copy.

With Reeder being an application from the Mac AppStore this will break the digital signature of the application rendering it non-launchable. So you will need to remove all signs of Contents/_CodeSignature/CodeResources as well. Then this might work unless the application does additional bundle checking that will prevent this. (Which is something I don't know in the case of Reeder.) When that actually works, you will need to launch the application with a secondary-click (right click, two-finger click or ctrl-click) then selecting “Open” from the contextual menu and confirming the subsequent warning from Gatekeeper. (I definitely can not recommend to turn off Gatekeeper completely.)

Of course you will need to do all these steps for each and every copy after each update of Reeder again. (With the risk that Reeder may add additional checks at any time rendering this process not working anymore.)

Other solutions may be to use different RSS clients for your multiple accounts and requesting multi-account support from the developers.

Solution 2:

You can do this with Reeder.

  • You will need as many user accounts as you have Google accounts.
  • Supposing you have 2 Google accounts, you can obviously run your main Google account as the default user. Just click on Reeder from Launcher or Dock and you are good to go.
  • Go to System Preferences, Users & Groups, and create a new user. Call it TestUser. Make sure you set a password. A standard user account would do.
  • Open Terminal.
  • execute this: echo "password" | sudo -S -u TestUser /Applications/Reeder.app/Contents/MacOS/Reeder &

voila! You can now see a 2nd Reeder window!

Solution 3:

Create a new desktop user for each different Google Reader account. Then you may use fast switching between accounts to change to the desired user (there's a menu bar available for that).

You may also be able to use a shell command to launch a process under the same window manager from another user. Say su other_user -c 'open /Applications/Reeder.app'. I've done this to launch GUI applications as root. I toyed around with opening Chrome using that approach, but it seems like the keychain isn't initialized correctly in that case -- it might be trying to read the keychain from the host user. You may be able to resolve that by first logging in as the user, creating the keychain, and then running the script.

Addendum: I'm not sure if an App Store program will launch as another user, having different authentication (I haven't used App Store yet). If that's the case, I would create a script to temporarily modify the keychain, launch Reeder, and then recreate the original. That's a pretty grotesque approach, though.