Perché le applicazioni di App Store trasferite in ~ / Applicazioni su un'altra macchina non vengono avviate?

9

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

Ho copiato le app dal mio computer di casa nella directory ~/Applications del computer di lavoro e ho tentato di eseguirle, con esito positivo misto:

  • Alcune app, quando le esegui per la prima volta, apri una finestra di dialogo che dice "Accedi per utilizzare questa applicazione su questo computer" e richiedi 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à comunque questa finestra di dialogo, ma per qualche motivo non funzionerà, anche dopo aver digitato l'ID e la password. (Esempio: BBEdit, Soulver, Twitterrific)

Le domande:

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

Modifica : quando l'app fallisce, dà un messaggio di console "Uscito con codice di uscita: 173". Se capisco correttamente, ciò significa che l'app non è valida (cosa che è prevedibile quando la copio da un computer a un altro). Tuttavia, il processo con cui 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 controllano che l'app sia stata validamente acquistata e funzionerebbero su qualsiasi computer senza alcun tipo di convalida.

La domanda rimane, c'è una soluzione?

Modifica di nuovo: non ho alcun problema a copiare un'app in ~/Applications sul mio computer di casa, anche per un altro utente. Perché indagare (per non parlare della risoluzione) di questo problema richiede tanto fastidio (inclusi due computer o almeno una macchina virtuale), sto offrendo una taglia.

    
posta Nathan Grigg 05.10.2011 - 21:02
fonte

1 risposta

12

Hai trovato un bug interessante (leggi: molto fastidioso) nel processo di convalida di App Store, sembra:

Per i principianti, la posizione in cui copi le tue app non entra, infatti, e nemmeno il tuo stato come utente admin / non amministratore. Nonostante il fatto che Apple affermi che questo dovrebbe essere possibile , sulle mie due macchine, non riesco a far copiare manualmente un'app per l'esecuzione come un utente standard, un utente amministratore, in /Applications o in ~/Applications . Neppure chown ing e chmod ing il bundle per conformarsi alla guida delle installazioni regolari. Il foglio di accesso all'App Store si apre (una volta), ma in seguito l'app continua a uscire con il codice di uscita 173.

In base alla documentazione per sviluppatori Apple per la convalida delle ricevute di App Store , parte della ricevuta che convalida l'utilizzo di un'app è un GUID specifico della macchina. Quando si copia un'app su un'altra macchina, il GUID non corrisponde più, invalidando quindi la ricezione (al contrario, sulla propria macchina, corrisponde sempre a qualsiasi utente per cui si installa l'applicazione - quindi non si hanno problemi con quello) . Le app hanno lo scopo di segnalare una ricevuta non valida uscendo con il codice di uscita 173 e il processo storeagent di App Store è destinato a subentrare dopo di ciò, chiedere credenziali e generare una nuova ricevuta, quindi rilanciare l'app in caso di successo:

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.

Ciò che accade nel tuo caso (e nel mio test) è che la convalida fallisce - come indicato dal fatto che lo scontrino non viene mai aggiornato, ma non viene visualizzato alcun messaggio di errore. I log mostrano storeagent restituisce:

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 correlare i dati di iTunes Connect incompleti (Geoff Pado ha un sommario sintetico here ).

Ad ogni modo, l'immagine nel suo complesso mostra chiaramente che la convalida sta fallendo in rotta , lasciando le app copiate manualmente con una ricevuta non valida anche dopo aver inserito le credenziali corrette nell'App Store. Come hai notato, solo le app che non controllano la propria validità continueranno a essere pubblicate.

Non molto utile nel tuo caso, Apple consiglia solo l'eliminazione e il nuovo download 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 finché Apple non risolve il processo di convalida della ricevuta necessario per tale app. Installa posizione e privilegi utente non entrano in esso.

    
risposta data 25.10.2011 - 23:44
fonte

Leggi altre domande sui tag