Pourquoi les applications App Store transférées dans ~ / Applications sur une autre machine ne se lancent-elles pas?

10

J'ai acheté des applications sur le Mac App Store et les ai installées sur mon ordinateur personnel. Je voudrais les installer sur un ordinateur de travail partagé. Malheureusement, je n'ai pas d'accès administrateur à l'ordinateur de travail, je ne peux donc pas le faire de la manière habituelle.

J'ai copié les applications de mon ordinateur personnel dans le ~/Applicationsrépertoire de l'ordinateur de travail et tenté de les exécuter, avec un succès mitigé:

  • Certaines applications, lorsque vous les exécutez pour la première fois, ouvrent une boîte de dialogue indiquant "Connectez-vous pour utiliser cette application sur cet ordinateur" et vous demandent votre identifiant Apple et votre mot de passe, après quoi ils fonctionnent correctement. (Exemple: DayOne et la plupart des applications gratuites)
  • La plupart des applications vous montreront toujours cette boîte de dialogue, mais pour une raison quelconque, cela ne fonctionnera pas, même après avoir tapé votre ID et votre mot de passe. (Exemple: BBEdit, Soulver, Twitterrific)

Questions):

  • Puis-je faire quelque chose pour faire fonctionner l'application?
  • Sinon, qu'est-ce qui fait que l'application refuse de se lancer?

Modifier : lorsque l'application échoue, elle affiche un message de console "Quitté avec le code de sortie: 173". Si je comprends bien, cela signifie que l'application n'est pas valide (ce qui est normal lorsque je la copie d'un ordinateur à un autre). Cependant, le processus par lequel l'App Store valide l'application semble ne pas fonctionner lorsque l'application n'est pas au bon endroit. En outre, il semble probable que les applications qui fonctionnent, telles que DayOne ou les applications gratuites, ne fonctionnent que parce qu'elles ne vérifient pas que l'application a été valablement achetée et fonctionneraient en fait sur n'importe quel ordinateur sans aucune sorte de validation.

La question demeure, existe-t-il une solution de contournement?

Modifier à nouveau: Je n'ai aucun problème à copier une application ~/Applicationssur mon ordinateur personnel, même pour un autre utilisateur. Parce qu'étudier (sans parler de résoudre) ce problème nécessite tant de tracas (y compris deux ordinateurs ou au moins une machine virtuelle), je propose une prime.

Nathan Grigg
la source
Êtes-vous sur un lion ou un léopard des neiges?
bmike
L'ordinateur de travail est le léopard des neiges. La maison est Lion. hmmm.
Nathan Grigg
Il est préférable de se connecter sur l'ordinateur de travail et de télécharger, puis de déplacer les fichiers une fois téléchargés, non?
bmike
1
Lorsque vous téléchargez des fichiers depuis l'App Store, il les met /Applicationset nécessite donc un mot de passe administrateur.
Nathan Grigg
J'ai effectué quelques tests et réécrit complètement ma réponse ci-dessous. Pas de solution, j'ai peur de le dire, mais au moins une explication de ce qui se passe.
kopischke

Réponses:

12

Vous avez rencontré un bug intéressant (lire: très ennuyeux) dans le processus de validation de l'App Store, il semble:

Pour commencer, l'emplacement vers lequel vous copiez vos applications n'y entre pas en fait, et votre statut d'administrateur / non-administrateur non plus. Malgré le fait qu'Apple déclare que cela devrait être possible , sur mes deux machines, je ne peux pas obtenir une application copiée manuellement pour fonctionner en tant qu'utilisateur standard, en tant qu'administrateur, dans /Applicationsou en ~/Applications. Ni chownn'ING et chmoding le faisceau pour se conformer à une aide régulière de installations. La feuille de connexion à l'App Store s'affiche (une fois), mais l'application continue de quitter avec le code de sortie 173 après cela.

Selon la documentation du développeur Apple pour la validation des reçus App Store , une partie du reçu validant l'utilisation d'une application est un GUID spécifique à la machine. Lorsque vous copiez une application sur une autre machine, le GUID ne correspond plus, ce qui invalide la réception (à l'inverse, sur votre propre machine, il correspond toujours, quel que soit l'utilisateur pour lequel vous installez l'application - donc vous n'avez aucun problème avec cela) . Les applications sont censées signaler un reçu non valide en quittant avec le code de sortie 173, et le storeagentprocessus de l'App Store est censé prendre le relais après cela, demander des informations d'identification et générer un nouveau reçu, puis relancer l'application en cas de succès:

Si le système réussit à obtenir un reçu valide, il relance l'application. Sinon, il affiche un message d'erreur à l'utilisateur, expliquant le problème.

N'affichez aucun message d'erreur à l'utilisateur si la validation échoue. Le système est chargé d'essayer d'obtenir un reçu valide ou d'informer l'utilisateur que le reçu n'est pas valide.

Ce qui se passe dans votre cas (et dans mon test) est que la validation échoue discrètement - comme indiqué par le fait que le reçu n'est jamais mis à jour, mais aucun message d'erreur n'est affiché non plus. Les journaux affichent des storeagentretours:

promptResponse: <CKSignInPromptResponse:0x1080c4fb0 returnCode:1>

Ce code n'est pas documenté par Apple, et tout ce que j'ai trouvé sont des discussions par les développeurs sur ce problème dans un contexte de test, où il semble être lié à des données iTunes Connect incomplètes (Geoff Pado a un résumé concis ici ).

Quoi qu'il en soit, l'image dans son ensemble montre clairement que la validation échoue en cours de route , ce qui laisse les applications copiées manuellement avec un reçu non valide même après avoir entré les informations d'identification correctes dans l'App Store. Seules les applications qui ne vérifient pas leur propre validité continueront de fonctionner, comme vous l'avez noté.

Pas très utile dans votre cas, Apple recommande uniquement de supprimer et de retélécharger de l'App Store pour résoudre le problème.

TL; DR: vous ne pouvez pas copier manuellement des applications achetées dans l'App Store d'un ordinateur à un autre jusqu'à ce qu'Apple corrige le processus de validation de réception nécessaire. L'emplacement d'installation et les privilèges utilisateur n'y entrent pas.

kopischke
la source
Le bogue a apparemment été corrigé (voir apple.stackexchange.com/questions/46874/… ). Cela fonctionne également pour moi, même si je n'ai pas mis à niveau la machine Snow Leopard depuis que j'ai posé la question à l'origine.
Nathan Grigg