Domanda

Io uso un account utente standard per le mie attività quotidiane su Mac OS. Dal momento che l'aggiornamento a Snow Leopard mi viene chiesto di eseguire le seguenti operazioni quando un programma viene eseguito all'interno di Xcode:

"Digitare il nome e la password di un utente nel gruppo 'Developer Tools' per consentire Developer Tools effettuare le impostazioni"

Anche se so che l'admin username / password, questo è fastidioso (anche se solo una volta per ogni richiesta di accesso).

L'accesso strumenti di sviluppo sta chiedendo diritti di "system.privilege.taskport.debug" dall'applicazione gdb-i386-apple-Darwin.

Qual è il modo migliore per aggirare questo?

È stato utile?

Soluzione

È necessario aggiungere il nome utente OS X al gruppo _developer. Vedere i messaggi in questo discussione per ulteriori informazioni. Il seguente comando dovrebbe fare il trucco:

sudo dscl . append /Groups/_developer GroupMembership <username>

Altri suggerimenti

Infine, sono stato in grado di sbarazzarsi di esso utilizzando DevToolsSecurity -enable su Terminal. Grazie alla @joar_at_work !

FYI : sono in Xcode 4.3, e premette il Disattiva quando ha lanciato per la prima volta, non chiedere perché, basta assumere il mio cane ha fatto fare a me:)

$ dseditgroup -o edit -u <adminusername> -t user -a <developerusername> _developer

Si dovrebbe aggiungere se stessi al gruppo Developer Tools. La sintassi generale per l'aggiunta di un utente a un gruppo in OS X è la seguente:

sudo dscl . append /Groups/<group> GroupMembership <username>

Credo che il nome per il gruppo DevTools è _developer.

La soluzione di Ned deily funziona perfettamente bene, a condizione che l'utente è autorizzato a sudo.

Se non lo è, si può su ad un account amministratore, quindi utilizzare il suo dscl . append /Groups/_developer GroupMembership $user, dove $ utente è il nome utente.

Tuttavia, ho erroneamente pensato che non lo fece perché erroneamente digitato il nome dell'utente nel comando e viene a mancare in silenzio.

Quindi, dopo aver inserito questo comando, si dovrebbe prova di controllarlo. Questo controlla se $ utente è nel gruppo di $, dove le variabili rappresentano rispettivamente il nome utente e il nome del gruppo.

dsmemberutil checkmembership -U $user -G $group

Questo comando o stampare il messaggio o user is not a member of the group user is a member of the group.

Risposta suggerita da @Stacy Simpson:

sono alle prese con il problema descritto in questi fili e nessuna delle risoluzioni sembra funzionare:

Come io sono nuovo a SO, non posso postare in entrambi i thread. (Il primo è in realtà chiuso e non sono d'accordo con il ragionamento di localizzazione ...)

In ogni caso, abbiamo creato un work-around usando AppleScript che le persone potrebbero essere interessati a Lo script di seguito deve essere eseguito in modo asincrono prima di lanciare il test automatizzato:.

osascript <script name> <password> &

Ecco lo script:

on run argv
    # Delay for 10 seconds as this script runs asynchronously to the automation process and is kicked off first.
    delay 10

    # Inspect all running processes
    tell application "System Events"
        set ProcessList to name of every process
        # Determine if authentication is being requested
        if "SecurityAgent" is in ProcessList then
            # Bring this dialogue to the front
            tell application "SecurityAgent" to activate
            # Enter provided password
            keystroke item 1 of argv
            keystroke return
        end if
    end tell
end run

Probabilmente non molto sicuro, ma è il miglior lavoro-around che è venuta in mente per permettere test di eseguire senza richiedere l'intervento dell'utente.

Si spera, posso ottenere abbastanza punti per inviare la risposta; o, qualcuno può rimuovere la protezione a questa domanda. Saluti.

Qui è una soluzione migliore da
Mac OS X vuole usare portachiavi di sistema quando si compila il progetto

  
      
  1. Apri Accesso Portachiavi.
  2.   
  3. In alto a sinistra, sbloccare il portachiavi (se è bloccato).
  4.   
  5. Scegli il portachiavi di sistema dall'angolo in alto a sinistra.
  6.   
  7. Trova il tuo certificato di distribuzione e fare clic sul triangolo.
  8.   
  9. Fare doppio clic su ‘chiave privata’ sotto il tuo certificato di distribuzione.
  10.   
  11. Nel popup, vai alla scheda Controllo di accesso.
  12.   
  13. Seleziona ‘Tutte le applicazioni possono accedere a questo oggetto’.
  14.   
  15. Salvare le modifiche.
  16.   
  17. Chiudere tutte le finestre.
  18.   
  19. Eseguire l'applicazione.
  20.   

Sono on Snow Leopard e questo non ha funzionato del tutto per me. Ma la seguente procedura ha funzionato:

  1. In primo luogo ha aggiunto un altro account con privilegi di amministratore barrando "L'utente può amministrare questo computer" in Account, ad esempio un account con nome utente test
  2. Inserito nel test conto
  3. Lanciata Xcode, compilato e corse il mio progetto iPhone. Tutto ok, nessun errore sono stati gettati relative alle autorizzazioni
  4. disconnesso da test conto
  5. Accesso effettuato con i privilegi di amministratore di un altro account con
  6. ha tolto il priviliges Admin dal test conto togliendo il segno di spunta da "L'utente può amministrare questo computer" in Account
  7. Collegato indietro nel test conto
  8. soppresso directory del progetto iPhone e di nuovo controllato dal repository (nel mio caso svn)
  9. Lanciata Xcode, compilato e corse il progetto. Non ho ricevuto eventuali errori e l'App ha funzionato bene in iPhone Simulator.

Dopo aver eseguito:

sudo dscl . append /Groups/_developer GroupMembership <username>

per la risposta di cui sopra, si può ancora get chiesto di inserire la vostra password:

Abbiamo bisogno di autorizzazione da un utente amministratore per eseguire il debugger. Questo avverrà solo una volta per sessione di login.

Che cosa significa in realtà è un qualsiasi _developer utente groupmember così appena l'utente non-admin / password funzionerà qui, ma per sbarazzarsi di completamente (nessuna richiesta dopo un riavvio) avrete anche bisogno per eseguire:

sudo DevToolsSecurity -enable

(in esecuzione con sudo come un utente amministratore / root farà in modo che si può fare in remoto, senza una richiesta di password gui)

Per quanto mi riguarda, ho trovato il suggerimento in questo thread ha aiutato:

Stop "sviluppatore accesso strumenti ha bisogno di prendere il controllo di un altro processo per il debug per continuare" avviso

Si consiglia di eseguire il seguente comando nella Terminale applicazione:

sudo /usr/sbin/DevToolsSecurity --enable
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top