Installazioni multiple della stessa applicazione?

3

C'è un modo per avere più installazioni della stessa applicazione (nello stesso account utente)?

Fondamentalmente, ho diversi account di google reader e voglio essere in grado di avere più istanze di Reeder . In questo modo, cambiare account richiede al momento di riavviare l'app e digitare manualmente le diverse informazioni sull'account. A quel punto, puoi accedere solo a uno degli account, e il passaggio coinvolge di nuovo l'intero rigamarole.

C'è un modo in cui posso avere qualcosa come una sandbox per ogni istanza, con il suo portachiavi?

Ho installato Xcode, e immagino ci sia un meccanismo in Xcode per lasciare che i programmi abbiano portachiavi / informazioni separati, per quando stai provando un'app che hai compilato. C'è qualcosa di simile e / o come lo usi?

    
posta Fake Name 13.08.2012 - 10:18
fonte

7 risposte

1

L'unico modo per ottenere questo risultato con applicazioni che non hanno il supporto multi-account nativo sarebbe quello di patchare il CFBundleIdentifier che viene anche usato dall'applicazione per trovare le password sui portachiavi. Puoi cambiarlo modificando il file Info.plist nel pacchetto di applicazioni. Questo interromperà la firma digitale dell'applicazione, quindi lavora sempre su una copia.

Poiché Reeder è un'applicazione del Mac App Store, ciò interromperà la firma digitale dell'applicazione rendendola non riscrivibile. Quindi dovrai rimuovere anche tutti i segni di Contents/_CodeSignature/CodeResources . Quindi questo potrebbe funzionare a meno che l'applicazione non esegua un controllo bundle aggiuntivo che impedisca questo. (Che è qualcosa che non so nel caso di Reeder.) Quando funziona, è necessario avviare l'applicazione con un clic secondario (clic destro, clic con due dita o ctrl-clic) quindi selezionare "Apri "Dal menu contestuale e confermando il successivo avviso da Gatekeeper. (Non posso assolutamente raccomandare di spegnere completamente Gatekeeper.)

Naturalmente dovrai eseguire tutti questi passaggi per ogni copia dopo ogni aggiornamento di Reeder. (Con il rischio che Reeder possa aggiungere ulteriori controlli in qualsiasi momento, rendendo questo processo non più funzionante.)

Altre soluzioni potrebbero essere l'utilizzo di diversi client RSS per i tuoi account multipli e la richiesta di supporto multi-account da parte degli sviluppatori.

    
risposta data 29.09.2012 - 20:12
fonte
5

Puoi farlo con Reeder.

  • Avrai bisogno di tutti gli account utente quanti hai gli account Google.
  • Supponendo di avere 2 account Google, puoi ovviamente eseguire il tuo account Google principale come utente predefinito. Basta fare clic su Reeder da Launcher o Dock e sei a posto.
  • Vai a Preferenze di Sistema, Utenti e amp; Gruppi e crea un nuovo utente. Chiamalo TestUser. Assicurati di aver impostato una password. Un account utente standard farebbe
  • Apri terminale.
  • esegui questo: echo "password" | sudo -S -u TestUser /Applications/Reeder.app/Contents/MacOS/Reeder &

voilà! Ora puoi vedere una seconda finestra Reeder!

    
risposta data 29.09.2012 - 21:46
fonte
2

Crea un nuovo utente desktop per ogni account Google Reader diverso. Quindi è possibile utilizzare il passaggio rapido tra gli account per passare all'utente desiderato (è disponibile una barra dei menu per questo).

Potresti anche essere in grado di utilizzare un comando shell per avviare un processo con lo stesso gestore finestre da un altro utente. Dì su other_user -c 'open /Applications/Reeder.app' . Ho fatto questo per avviare le applicazioni GUI come root. Mi sono divertito con l'apertura di Chrome usando questo approccio, ma sembra che il portachiavi non sia inizializzato correttamente in quel caso - potrebbe provare a leggere il portachiavi dall'host. Potresti riuscire a risolverlo eseguendo prima l'accesso come utente, creando il portachiavi e poi eseguendo lo script.

Addendum: non sono sicuro che un programma App Store verrà lanciato come un altro utente, con autenticazione diversa (non ho ancora utilizzato App Store). In tal caso, creo uno script per modificare temporaneamente il portachiavi, avviare Reeder e quindi ricreare l'originale. È un approccio piuttosto grottesco, però.

    
risposta data 27.09.2012 - 19:28
fonte
1

Dipende dall'app, immagino che questo sia perfettamente possibile per alcuni, e non per gli altri. Dipende se l'app è autonoma nel proprio bundle, o se richiede l'uso di file ausiliari nella cartella ~ / library, come gli elenchi, ecc. L'uso di tali file plist ecc. Spesso è dove le impostazioni e le preferenze sono memorizzate includendo le impostazioni dell'account e disponendo di più istanze dell'applicazione, il risultato sarà sempre nella stessa posizione del file plist.

Potresti avvolgere il tuo file binario dell'applicazione in alcuni script per spostare il plist corretto in loco prima di iniziare ogni istanza, ma ancora una volta dipendente dall'app, non è garantito che un'app già in esecuzione continui a funzionare se si verificano cambiamenti plist o adotterà le nuove impostazioni ad un certo punto.

    
risposta data 13.08.2012 - 10:34
fonte
1

Se l'app proveniva da qualsiasi altro posto oltre all'App Store, ti suggerirei di avere una ragionevole possibilità di dare un'occhiata all'interno del pacchetto dell'app e magari di cambiare quello che considerava il suo nome modificando un .plist e sperando che il il nome ha influenzato l'utilizzo del portachiavi.

Tuttavia, poiché Reeder è un'app di App Store, sospetto che tu sia bloccato. Se modifichi l'app, la sua firma diventerà non valida e il sistema operativo non ti consentirà di eseguirlo. A meno che non ci sia un qualche tipo di trucco autofirmato che puoi fare ...

    
risposta data 13.08.2012 - 10:45
fonte
1

No - il portachiavi è un'interfaccia di sistema profondamente integrata in cui la mappatura è strongmente legata alla cartella home dell'utente (l'applicazione non può scegliere quale portachiavi dell'utente accedere mentre il sistema indica quale cartella letterale è mappata a ~) .

Tuttavia, l'unico caso particolare in cui ciò funzionerà è per le applicazioni che sono programmate con il codice per leggere un file di configurazione (file plist, .dotfile o altro meccanismo) e si potrebbe usare l'automazione per impostare le variabili del tempo di esecuzione, impostazioni o manipolare direttamente i file .plist prima di avviare l'app in questione.

  • Platypus potrebbe essere la mia scelta per uno script di shell per modificare le cose e quindi avviare l'app e raggruppare le cose.
  • Keychain Scripting potrebbe anche graffiare il tuo prurito se puoi recuperare il nome di l'elemento portachiavi che volevi passare nell'app per ottenere un comportamento diverso a ogni avvio.

Il sistema non ha una visualizzazione di sandbox per questa separazione dei dati se non quando si avvia letteralmente una seconda sessione utente (consentita da Lion e in seguito), ma l'app deve eseguire l'opuput dei dati su una pipe o un file anziché esistere sullo schermo come app in esecuzione da un utente diverso.

A parte scrivere questo strumento da solo (hai Xcode dopo tutto), non c'è qualcosa che Apple fornisce per automatizzare il sandboxing dei portachiavi, poiché capisco che tu lo abbia descritto.

    
risposta data 28.09.2012 - 16:26
fonte
0

Scommetto qui, ma alcune applicazioni non possono essere aperte due volte e non posso acquistare Reeder a scopo di test. Tuttavia, suppongo che non puoi aprirlo due volte. Cosa succede quando duplichi l'app e provi ad aprire entrambi i file .app diversi? Se qualcosa del genere funziona, potresti provare ad avere un duplicato .app e magari trovare i contenuti che vuoi condividere o che possono essere condivisi tra entrambi come collegamenti simbolici dalla copia che fa riferimento all'app originale o principale.

Qualcosa del genere aiuta in qualche modo?

    
risposta data 27.09.2012 - 16:04
fonte

Leggi altre domande sui tag