simon.d
simon.d

Reputation: 2531

Mac App Store claims newer version of my app is already installed

I'm trying to install my app from the Mac App Store now that it's been published. I'm using the same machine as the one I developed the app one. For some reason, the App Store claims "A newer version of this app is already installed on this computer." I haven't touched the version number since I submitted it so this is strange.

I've removed all references of the app from Applications, Library/Preferences, Library/Application Support, Library/Caches, /var, and Trash. I've also cleaned the Product from within Xcode.

Any suggestions?

Thanks!

Upvotes: 5

Views: 6800

Answers (4)

Mat E.
Mat E.

Reputation: 525

I had this problem with CoBook on Mountain Lion and nothing out there seemed to work until I found this:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Source: http://web.archive.org/web/20130519023616/http://www.hacktheday.com/force-reinstall-application-downloaded-from-mac-app-store

Upvotes: 12

simon.d
simon.d

Reputation: 2531

This happened again to me but unfortunately the other solutions didn't work. This is what ended up working:

  1. Open the App Store. From the menu bar click Store > Sign In
  2. Click Purchases from the top of the App Store window.
  3. Select your app in the list. Then right or control click where you see Installed then click Install.
  4. Make sure and use the same Apple ID used for the original purchase.

This also works for free apps.

Upvotes: 0

Jonathan Berger
Jonathan Berger

Reputation: 1131

To fix this problem, you need to perform two steps.

  1. Delete all instances of your app. There are likely copies hiding in your home folder in ~/Library/Developer/Xcode/DerivedData/
  2. Reset the user domain in the Launch Services database with /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain user

The lsregister command manages the Launch Service database, or the database that keeps track of applications installed on your Mac and what types of files they open.

It's only necessary to reset the user domain (unlike the other answer from Mat E. that also resets the system and local domain) since your XCode DerivedData exists in your individual user directory. Only resetting this domain will prevent unnecessary warnings about running an app for the first time from reappearing.

Upvotes: 8

Tim
Tim

Reputation: 1689

Go to ~/Library/Developer/Xcode/DerivedData/ and delete your app's build folder.

Upvotes: 5

Related Questions