You have hit on an interesting (read: highly annoying) bug in the App Store validation process, it seems:
For starters, the location to which you copy your apps does not, in fact, come into it, and neither does your status as admin / non-admin user. Despite the fact Apple states this should be possible, on my two machines, I cannot get an app manually copied to run either as a standard user, an admin user, in /Applications
or in ~/Applications
. Neither does chown
ing and chmod
ing the bundle to conform with regular installs help. The App Store login sheet pop ups (once), but the app keeps quitting with exit code 173 after that.
According to Apple’s developer documentation for the validation of App Store receipts, part of the receipt validating the use of an app is a machine specific GUID. When you copy an app to another machine, the GUID does not match anymore, thus invalidating the receipt (conversely, on your own machine, it always matches, whatever the user you install the app for – hence you not having any problem with that). Apps are meant to signal an invalid receipt by exiting with exit code 173, and the App Store’s storeagent
process is meant to take over after that, asking for credentials and generating a new receipt, then re-launching the app on success:
If the system successfully obtains a valid receipt, it relaunches the application. Otherwise, it displays an error message to the user, explaining the problem.
Do not display any error message to the user if validation fails. The system is responsible for trying to obtain a valid receipt or informing the user that the receipt is not valid.
What happen in your (and my test) case is that validation fails quietly – as indicated by the fact the receipt is never updated, but no error message is shown either. The logs show storeagent
returns:
promptResponse: <CKSignInPromptResponse:0x1080c4fb0 returnCode:1>
This code is undocumented by Apple, and all I have found are discussions by developers about this issue in a testing context, where it seems to relate to iTunes Connect data being incomplete (Geoff Pado has a concise summary here).
However that may be, the picture as a whole clearly shows validation is failing en route, which leaves apps copied manually with an invalid receipt even after entering the correct credentials to the App Store. Only those apps that do not check their own validity will still run, as you noted.
Not very helpfully in your case, Apple only recommends deleting and re-downloading from the App Store to remedy the issue.
TL;DR: You cannot manually copy apps bought in the App Store from one computer to another until Apple fixes the receipt validation process needed for it. Install location and user privilege do not come into it.
I found a solution. Another forum post describing similar issues suggested deleting /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
. I backed that file up, deleted it, and restarted. I can now log in and out of AppStore, access all of my AppStore purchased apps, and it 'sticks' across shutdowns and restarts.
Process is pretty simple, I'll spell it out for future reference:
- Open Terminal
cd /Library/Preferences/SystemConfiguration
cp NetworkInterfaces.plist ~/NetworkInterfaces.plist.bak
- Make a hasty backup in your home directory
sudo rm NetworkInterfaces.plist
delete the original
- Restart your Mac
- Open AppStore and try to sign in. It should work.
Apparently this works because the MAC address is used as part of the receipt/authorization process.
Best Answer
Yesterday (February 14, 2016), one of the Mac App Store certificates expired and it also was the deadline for developers to include a new intermediate certificate in their app signing chain. The former causes the receipt validation code used by many apps to fail and the latter is the longer term "cure"
Developers were emailed at least two times about this change but didn't have a lot of time to submit apps for review - based on the time it typically takes a review for a Mac App Store update to get processed even if it's approved on the first submission.
Users need to launch each one of their MAS apps while connected to the internet to renew intermediate certificates or deal with apps that need to be re-downloaded.
An app with an invalid receipt should exit with a special code (173), which informs OS X to present a Sign in to use this application on this computer dialog.
However, a separate bug in OS X can prevent this dialog from appearing. In this case, users will see an app which simply exits on launch. (Console.app reports that the app is exiting with code 173, but OS X forgets to show the dialog).
Two scenarios that you should be aware of:
Horrible situation that Apple is very aware of.