Mac OS X desidera utilizzare il portachiavi di sistema durante la compilazione del progetto


92

Mi viene chiesto di digitare il nome utente e la password dell'amministratore di sistema quando compilo il mio progetto Xcode. L'intero messaggio è

Mac OS X desidera apportare modifiche. Digita il nome e la password di un amministratore per consentirlo. Mac OS X desidera utilizzare il portachiavi di sistema.

Qualcuno ha una soluzione per questo?

Risposte:


242
  1. Apri Accesso Portachiavi.
  2. Nell'angolo in alto a sinistra, sblocca il portachiavi (se è bloccato).
  3. Scegli il portachiavi di sistema nell'angolo in alto a sinistra.
  4. Trova il tuo certificato di distribuzione e fai clic sul triangolo di apertura.
  5. Fare doppio clic su "Chiave privata" sotto il certificato di distribuzione.
  6. Nel popup, vai alla scheda Controllo accessi.
  7. Seleziona "Consenti a tutte le applicazioni di accedere a questo elemento".
  8. Salva le modifiche.
  9. Chiudi tutte le finestre.
  10. Esegui l'applicazione.

3
Non trovo alcun elenco a discesa del certificato di distribuzione. dove trovarlo?
Ananth Srinivasan

4
@AnanthSrinivasan, PVCS significa semplicemente l'elenco degli account elencati nella finestra principale. Fare doppio clic sull'account che ti obbliga a inserire il nome e la password dell'amministratore.
crazyDiamond

Questo è anche l'unico buon modo per assicurarsi che funzioni su un server di compilazione automatizzato senza interrompere le credenziali.
Ben Butzer

4
Ti meriti un biscotto grosso per quella risposta.
Miiite

1
Ho scoperto che, su El Capitan, devi fare doppio clic sulle chiavi private che corrispondono al formato yourhostname.domain.identity e quindi eseguire i passaggi 6-8.
Jason D

22

Il problema è con il certificato sviluppatore su portachiavi che si trova sotto "Sistema", nel pannello di sinistra, che è sempre bloccato e richiede la mia password per sbloccarlo!

Quindi sposta il certificato per sviluppatori su "login", che è sempre sbloccato. Ora il tuo problema viene risolto.


1
Questo mi ha aiutato, tranne per il fatto che non potevo spostare il portachiavi su "login". Tuttavia, la rimozione del certificato dal portachiavi di sistema è ciò che penso risolva questo problema.
goelakash

Questo è adatto solo per la creazione dalla GUI di Xcode, quando si crea dalla CLI (come nell'ambiente CI) la chiave e il certificato devono essere nel portachiavi di sistema.
RAM237

Grande! ha funzionato per me. Il mio certificato era in "Sistema", spostato in "Accesso".
lal

Niente ha funzionato per me tranne questo. Nota che non potevo spostarlo, ho dovuto eliminare e trascinare manualmente il certificato su "Login"
Lirik

7
  1. Apri Accesso Portachiavi

  2. Fare clic su Sistema nel riquadro sinistro

  3. Sblocca il portachiavi di sistema in alto a sinistra (se è bloccato)

  4. Ordina gli elementi di sistema per tipo in modo che le chiavi siano in alto

  5. Cerca la chiave privata che continua a chiedere la password

  6. Fare doppio clic su di esso e scegliere Controllo accesso

  7. Scegli "Consenti a tutte le applicazioni di accedere a questo elemento"

  8. Salva le modifiche, blocca il portachiavi di sistema e chiudi l'app Portachiavi

  9. Riavvia l'applicazione che continua a chiedere di modificare il tuo portachiavi


Come best practice, per il passaggio 7, consenti solo le applicazioni specifiche a cui stai tentando di dare accesso. Perché la sicurezza.
Mike Rapadas

1
In che cosa differisce dalla risposta fornita anni prima ?
grg

1
Quando ho risposto, la risposta era vecchia di 2 anni e la risposta non ha funzionato per me, quindi ho annotato i passaggi che ho seguito per farlo funzionare, da qui i 5 voti positivi. Non venire qui ad aggiornare la sua risposta, poi chiedimi perché la mia è diversa .. Se fosse la stessa sono sicuro che tutti l'avrebbero
votata negativamente

1
Non riesco a salvare le modifiche al punto 8. Inserisco il pass amministratore (me lo chiede due volte), tuttavia, quando riapro la chiave, le modifiche non sono state salvate! Perché è così?
Danijel

5

Stavo riscontrando questo problema perché avevo certificati duplicati nel mio login e nei portachiavi di sistema. Aprendo Accesso portachiavi ed eliminando tutti i certificati dal sistema che erano anche in login ha risolto questo problema. Spero che questo ti aiuti.


Questo è adatto solo per la creazione dalla GUI di Xcode, quando si crea dalla CLI (come nell'ambiente CI) la chiave e il certificato devono essere nel portachiavi di sistema. Su un Mac ho la stessa situazione: duplicato in login e portachiavi di sistema e tutto funziona bene, ma non su un altro per qualche motivo ...
RAM237

3

Ho riscontrato che il problema riguarda il provisioning dei profili. Ho eliminato tutti i profili di provisioning precedenti e quindi ne ho reinstallato uno di cui avevo bisogno.


2

Nel mio caso sono andato su Accesso Portachiavi, selezionato "sistema" in "Portachiavi" (in alto a sinistra). Quindi per ogni elemento: fare clic con il pulsante destro del mouse, "Ottieni informazioni", "Controllo accessi" e aggiunto Xcode nell'elenco "Consenti sempre l'accesso a queste applicazioni:".


2

Sposta la tua chiave privata dal sistema per accedere all'accesso al portachiavi, quindi sposta il tuo certificato sviluppatore all'accesso. Questo ha funzionato per me.


1

Ho seguito una soluzione simile a quella che ha fatto @krafter ma, invece di dare accesso a tutto nel portachiavi di sistema, dovevo solo dare add xcode al profilo di provisioning sotto keychain -> system -> "your provision profile" -> get info -> Controllo degli accessi, quindi aggiunto xcode. Questo è ciò che ha funzionato per 4.6


0

Sì, esegui XCode solo con privilegi di amministratore. Ha bisogno dei diritti di amministratore per eseguire tutta una serie di attività, installazioni, sessioni di debug e così via.


come posso modificare le preferenze di xcode in modo che funzioni con le preferenze di amministrazione?
Singh

Voglio dire, eseguilo da un utente definito come amministratore.
Stavash

0

Sei sicuro che dice "Mac OS X" non qualcosa correlato agli strumenti di sviluppo?

È normale se gli Strumenti per sviluppatori vogliono abilitare la Modalità sviluppatore sul tuo Mac, quindi non è necessario inserire una password di amministratore ogni volta che avvii il debug della tua app nel simulatore per la prima volta dopo ogni avvio di Xcode.

Ma se non hai abilitato la Modalità sviluppatore, quando è stata offerta da Xcode, quindi preparati, Xcode chiederà una password di amministratore per la prima volta che avvii il debug nel simulatore dopo ogni avvio di Xcode.


sì, dice MAC OS X e quando compilo la build per il simulatore non mi mostra questo messaggio e quando eseguo qualsiasi progetto sul dispositivo mi mostra il messaggio
Singh

ho scoperto che il problema era di provisioning dei profili. Ho cancellato tutti i profili di provisioning precedenti e poi ne ho reinstallato uno che mi serviva per risolvere il problema
Singh

Sei d'accordo con @developersaremad. Ho la soluzione ... Grazie
kb920

0

Devi aggiungere il tuo nome utente OSx al _developergruppo. Ha funzionato per me.

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

0

Sembra che Xcode non aggiorni la selezione del team, quindi selezionarlo di nuovo dalla scheda generale degli obiettivi lo ha risolto.


0

Le impostazioni di controllo degli accessi non sembrano più essere salvate per le chiavi private che sono memorizzate nel portachiavi di sistema, quindi il tentativo di aggiungere Xcode alla whitelist non ha funzionato per me.

Per mantenere le modifiche al controllo di accesso, ho dovuto copiare la chiave privata + il certificato nel portachiavi di accesso. Ciò ha impedito a Xcode di infastidirmi durante la firma del codice degli archivi per la distribuzione.

Tieni presente che Xcode interromperà la distribuzione se le impostazioni di affidabilità del certificato vengono modificate (ad esempio, Consenti sempre la firma del codice); è necessario mantenerli impostati come Default di sistema.

Spero che ci sia una soluzione migliore di questa, perché non sembra giusta. Ma per ora funziona.

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.