Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I have purchased some apps from the Mac App store and installed them on my personal computer. I would like to install them on a shared work computer. Unfortunately, I do not have admin access to the work computer, so I cannot do this the usual way.

I have copied the apps from my home computer to the ~/Applications directory of the work computer, and attempted to run them, with mixed success:

  • Some apps, when you run them for the first time, open a dialog box that says "Sign in to use this application on this computer" and prompt you for your Apple ID and password, after which they work fine. (Example: DayOne, and most free apps)
  • Most apps will still show you this dialog box, but for some reason will not work, even after you type in your ID and password. (Example: BBEdit, Soulver, Twitterrific)

The question(s):

  • Is there something I can do to make the app run?
  • If not, what is it that is causing the app to refuse to launch?

Edit: When the app fails, it gives a console message "Exited with exit code: 173". If I understand correctly, this means that the app is not valid (which is to be expected when I copy it from one computer to another). However, the process by which the App Store validates the app, appears to not work when the app is not in the proper location. Furthermore, it seems likely that apps that do work, such as DayOne or the free apps, work only because they are not checking that the app has been validly purchased and would in fact work on any computer without any kind of validation.

The question remains, is there a workaround?

Edit again: I have no problem copying an app into ~/Applications on my home computer, even for a different user. Because investigating (not to mention solving) this problem requires so much hassle (including two computers or at least a virtual machine), I am offering a bounty.

share|improve this question
    
Are you on lion or snow leopard? –  bmike Oct 5 '11 at 19:57
    
The work computer is snow leopard. Home is Lion. hmmm. –  Nathan Grigg Oct 5 '11 at 20:02
    
Best to sign in on the work computer and download and then move the files once they download, no? –  bmike Oct 5 '11 at 20:04
1  
When you download files from the App store, it puts them in /Applications and therefore requires an admin password. –  Nathan Grigg Oct 5 '11 at 20:16
    
Ran some tests and completely re-wrote my answer below. No solution, I’m afraid to say, but at least an explanation of what happens. –  kopischke Oct 26 '11 at 10:12
add comment

1 Answer

up vote 11 down vote accepted
+100

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 chwoning and chmoding 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.

share|improve this answer
    
+1 good investigation! –  andy Oct 26 '11 at 11:33
    
The bug has apparently been fixed (See apple.stackexchange.com/questions/46874/…). It also works for me, despite not having upgraded the Snow Leopard machine since I originally asked the question. –  Nathan Grigg Apr 11 '12 at 17:18
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.