Perché le applicazioni dell'App Store trasferite in ~ / Le applicazioni su un altro computer non si avviano?


10

Ho acquistato alcune app dal Mac App Store e le ho installate sul mio personal computer. Vorrei installarli su un computer di lavoro condiviso. Sfortunatamente, non ho accesso come amministratore al computer di lavoro, quindi non posso farlo nel solito modo.

Ho copiato le app dal mio computer di casa nella ~/Applicationsdirectory del computer di lavoro e ho tentato di eseguirle, con successo misto:

  • Alcune app, quando le esegui per la prima volta, aprono una finestra di dialogo che dice "Accedi per utilizzare questa applicazione su questo computer" e ti chiedono l'ID Apple e la password, dopodiché funzionano correttamente. (Esempio: DayOne e la maggior parte delle app gratuite)
  • La maggior parte delle app ti mostrerà ancora questa finestra di dialogo, ma per qualche motivo non funzionerà, anche dopo aver digitato ID e password. (Esempio: BBEdit, Soulver, Twitterrific)

Le domande):

  • C'è qualcosa che posso fare per far funzionare l'app?
  • In caso contrario, che cosa sta causando il rifiuto dell'app di avviarsi?

Modifica : quando l'app non riesce, viene visualizzato il messaggio "Uscito con codice di uscita: 173". Se capisco correttamente, ciò significa che l'app non è valida (cosa che ci si aspetta quando la copio da un computer a un altro). Tuttavia, il processo mediante il quale l'App Store convalida l'app, sembra non funzionare quando l'app non si trova nella posizione corretta. Inoltre, sembra probabile che le app che funzionano, come DayOne o le app gratuite, funzionino solo perché non stanno verificando che l'app sia stata validamente acquistata e funzionerebbe su qualsiasi computer senza alcun tipo di convalida.

La domanda rimane, c'è una soluzione?

Modifica di nuovo: non ho problemi a copiare un'app ~/Applicationssul mio computer di casa, anche per un altro utente. Poiché indagare (per non parlare della risoluzione) questo problema richiede tanta seccatura (inclusi due computer o almeno una macchina virtuale), sto offrendo una generosità.


Sei su leone o leopardo delle nevi?
bmike

Il computer di lavoro è Snow Leopard. La casa è il leone. hmmm.
Nathan Grigg,

È meglio accedere al computer di lavoro e scaricare e quindi spostare i file una volta scaricati, no?
bmike

1
Quando si scaricano file dall'App Store, li inserisce /Applicationse pertanto richiede una password di amministratore.
Nathan Grigg,

Ho eseguito alcuni test e ho completamente riscritto la mia risposta di seguito. Nessuna soluzione, temo di dire, ma almeno una spiegazione di ciò che accade.
kopischke,

Risposte:


12

Hai riscontrato un bug interessante (leggi: molto fastidioso) nel processo di convalida dell'App Store, a quanto pare:

Per i principianti, la posizione in cui copi le tue app non viene, in effetti, presente, e nemmeno il tuo stato di utente amministratore / non amministratore. Nonostante Apple affermi che ciò dovrebbe essere possibile , sui miei due computer , non riesco a far copiare manualmente un'app da eseguire come utente standard, utente amministratore, dentro /Applicationso dentro ~/Applications. Né chownl' chmodingegnerizzazione del bundle per conformarsi alle installazioni regolari aiuta. Viene visualizzato il foglio di accesso dell'App Store (una volta), ma l'app continua a chiudersi con il codice di uscita 173 dopo quello.

Secondo la documentazione per gli sviluppatori di Apple per la convalida delle ricevute dell'App Store , una parte della ricevuta che convalida l'uso di un'app è un GUID specifico della macchina. Quando copi un'app su un altro computer, il GUID non corrisponde più, invalidando così la ricevuta (al contrario, sul tuo computer, corrisponde sempre, qualunque sia l'utente per il quale installi l'app, quindi non hai alcun problema) . Le app hanno lo scopo di segnalare una ricevuta non valida uscendo con il codice di uscita 173 e il storeagentprocesso dell'App Store è destinato a subentrare successivamente, chiedendo credenziali e generando una nuova ricevuta, quindi riavviando l'app in caso di successo:

Se il sistema ottiene correttamente una ricevuta valida, riavvia l'applicazione. Altrimenti, visualizza un messaggio di errore per l'utente, che spiega il problema.

Non visualizzare alcun messaggio di errore all'utente se la convalida non riesce. Il sistema è responsabile del tentativo di ottenere una ricevuta valida o di informare l'utente che la ricevuta non è valida.

Quello che succede nel tuo caso (e nel mio test) è che la convalida fallisce tranquillamente - come indicato dal fatto che la ricevuta non viene mai aggiornata, ma non viene mostrato alcun messaggio di errore. I registri mostrano i storeagentritorni:

promptResponse: <CKSignInPromptResponse:0x1080c4fb0 returnCode:1>

Questo codice non è documentato da Apple, e tutto ciò che ho trovato sono discussioni degli sviluppatori su questo problema in un contesto di test, in cui sembra che i dati di iTunes Connect siano incompleti (Geoff Pado ha un riassunto conciso qui ).

Comunque sia, l'immagine nel suo insieme mostra chiaramente che la convalida non riesce lungo il percorso , il che lascia le app copiate manualmente con una ricevuta non valida anche dopo aver immesso le credenziali corrette nell'App Store. Solo le app che non verificano la propria validità continueranno a funzionare, come hai notato.

Non molto utile nel tuo caso, Apple consiglia solo di eliminare e riscaricare dall'App Store per risolvere il problema.

TL; DR: non è possibile copiare manualmente le app acquistate nell'App Store da un computer a un altro fino a quando Apple non risolve il processo di convalida della ricevuta necessario. La posizione di installazione e il privilegio dell'utente non vi entrano.


Sembra che il bug sia stato corretto (vedi apple.stackexchange.com/questions/46874/… ). Funziona anche per me, nonostante non abbia aggiornato la macchina Snow Leopard da quando avevo inizialmente posto la domanda.
Nathan Grigg,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.