Warum werden App Store-Anwendungen, die in ~/Applications auf einem anderen Computer übertragen wurden, nicht gestartet?

Ich habe einige Apps im Mac App Store gekauft und auf meinem PC installiert. Ich möchte sie auf einem gemeinsam genutzten Arbeitsrechner installieren. Leider habe ich keinen Admin-Zugriff auf den Arbeitsrechner, daher kann ich dies nicht auf dem üblichen Weg tun.

Ich habe die Apps von meinem Heimcomputer in das ~/ApplicationsVerzeichnis des Arbeitscomputers kopiert und versucht, sie auszuführen, mit gemischtem Erfolg:

  • Einige Apps öffnen beim ersten Ausführen ein Dialogfeld mit der Aufschrift „Melden Sie sich an, um diese Anwendung auf diesem Computer zu verwenden“ und fordern Sie zur Eingabe Ihrer Apple-ID und Ihres Kennworts auf. Danach funktionieren sie einwandfrei. (Beispiel: DayOne und die meisten kostenlosen Apps)
  • Die meisten Apps zeigen Ihnen dieses Dialogfeld immer noch an, aber aus irgendeinem Grund funktioniert es nicht, selbst nachdem Sie Ihre ID und Ihr Passwort eingegeben haben. (Beispiel: BBEdit, Soulver, Twitterrific)

Die Fragen):

  • Kann ich irgendetwas tun, damit die App läuft?
  • Wenn nicht, was führt dazu, dass die App den Start verweigert?

Bearbeiten : Wenn die App fehlschlägt, gibt sie eine Konsolenmeldung "Exited with exit code: 173" aus. Wenn ich das richtig verstehe, bedeutet dies, dass die App nicht gültig ist (was zu erwarten ist, wenn ich sie von einem Computer auf einen anderen kopiere). Der Prozess, mit dem der App Store die App validiert, scheint jedoch nicht zu funktionieren, wenn sich die App nicht am richtigen Ort befindet. Darüber hinaus scheint es wahrscheinlich, dass Apps, die funktionieren, wie DayOne oder die kostenlosen Apps, nur funktionieren, weil sie nicht überprüfen, ob die App gültig gekauft wurde, und tatsächlich auf jedem Computer ohne jegliche Validierung funktionieren würden.

Bleibt die Frage, gibt es Abhilfe?

Nochmals bearbeiten: Ich habe kein Problem damit, eine App ~/Applicationsauf meinen Heimcomputer zu kopieren, auch für einen anderen Benutzer. Da die Untersuchung (ganz zu schweigen von der Lösung) dieses Problems so viel Aufwand erfordert (einschließlich zweier Computer oder zumindest einer virtuellen Maschine), biete ich ein Kopfgeld an.

Stehst du auf Löwe oder Schneeleopard?
Der Arbeitscomputer ist Schneeleopard. Heimat ist Löwe. Hmmm.
Melden Sie sich am besten auf dem Arbeitscomputer an und laden Sie die Dateien herunter und verschieben Sie sie dann, sobald sie heruntergeladen sind, oder?
Wenn Sie Dateien aus dem App Store herunterladen, werden sie eingefügt /Applicationsund erfordern daher ein Administratorkennwort.
Ich habe einige Tests durchgeführt und meine Antwort unten komplett neu geschrieben. Keine Lösung, ich fürchte zu sagen, aber zumindest eine Erklärung dessen, was passiert.

Antworten (1)

Sie sind anscheinend auf einen interessanten (sprich: höchst ärgerlichen) Fehler im App Store-Validierungsprozess gestoßen:

Zunächst einmal spielt der Ort, an den Sie Ihre Apps kopieren, keine Rolle, und Ihr Status als Admin / Nicht-Admin-Benutzer auch nicht. Obwohl Apple angibt, dass dies möglich sein sollte , kann ich auf meinen beiden Computern eine App nicht manuell kopieren, um sie entweder als Standardbenutzer, als Admin-Benutzer, in /Applicationsoder in auszuführen ~/Applications. Es hilft auch nicht chown, chmoddas Bundle zu installieren, damit es mit regulären Installationen übereinstimmt. Das App Store-Anmeldeblatt wird (einmal) angezeigt, aber die App wird danach immer wieder mit dem Exit-Code 173 beendet.

Laut Apples Entwicklerdokumentation für die Validierung von App Store-Quittungen ist ein Teil der Quittung, die die Verwendung einer App validiert, eine maschinenspezifische GUID. Wenn Sie eine App auf einen anderen Computer kopieren, stimmt die GUID nicht mehr überein, wodurch die Quittung ungültig wird (umgekehrt stimmt sie auf Ihrem eigenen Computer immer überein, egal für welchen Benutzer Sie die App installieren – daher haben Sie damit kein Problem) . Apps sollen eine ungültige Quittung signalisieren, indem sie mit dem Exit-Code 173 beendet werden, und der storeagentProzess des App Store soll danach übernehmen, nach Anmeldeinformationen fragen und eine neue Quittung generieren und dann die App bei Erfolg neu starten:

Wenn das System erfolgreich eine gültige Quittung erhält, startet es die Anwendung neu. Andernfalls wird dem Benutzer eine Fehlermeldung angezeigt, in der das Problem erläutert wird.

Zeigt dem Benutzer keine Fehlermeldung an, wenn die Validierung fehlschlägt. Das System ist dafür verantwortlich, zu versuchen, eine gültige Quittung zu erhalten oder den Benutzer zu informieren, dass die Quittung ungültig ist.

Was in Ihrem (und meinem Test-)Fall passiert, ist, dass die Validierung stillschweigend fehlschlägt – was durch die Tatsache angezeigt wird, dass die Quittung nie aktualisiert wird, aber auch keine Fehlermeldung angezeigt wird. Die Protokolle zeigen storeagentRückgaben:

promptResponse: <CKSignInPromptResponse:0x1080c4fb0 returnCode:1>

Dieser Code ist von Apple nicht dokumentiert, und alles, was ich gefunden habe, sind Diskussionen von Entwicklern über dieses Problem in einem Testkontext, wo es sich anscheinend auf unvollständige iTunes Connect-Daten bezieht (Geoff Pado hat hier eine kurze Zusammenfassung ).

Wie auch immer, das Bild als Ganzes zeigt deutlich, dass die Validierung unterwegs fehlschlägt , was dazu führt, dass manuell kopierte Apps mit einer ungültigen Quittung zurückbleiben, selbst nachdem die richtigen Anmeldeinformationen im App Store eingegeben wurden. Nur die Apps, die ihre eigene Gültigkeit nicht überprüfen, werden weiterhin ausgeführt, wie Sie angemerkt haben.

In Ihrem Fall nicht sehr hilfreich, Apple empfiehlt nur das Löschen und erneute Herunterladen aus dem App Store , um das Problem zu beheben.

TL;DR: Sie können im App Store gekaufte Apps nicht manuell von einem Computer auf einen anderen kopieren, bis Apple den dafür erforderlichen Quittungsvalidierungsprozess repariert hat. Installationsort und Benutzerrechte spielen keine Rolle.

Der Fehler wurde anscheinend behoben (siehe apple.stackexchange.com/questions/46874/… ). Es funktioniert auch für mich, obwohl ich die Snow Leopard-Maschine nicht aktualisiert habe, seit ich die Frage ursprünglich gestellt habe.