2013-04-29 11 views

risposta

3

L'ho risolto per errore - dopo aver pettinato il web per ore - mentre riproducevo i passaggi durante la presentazione di un rapporto sugli incidenti con l'assistenza Apple.

Dal Mac (al contrario di una sessione ssh) lo stesso comando ha generato un popup che chiede il permesso di accedere al Portachiavi.

Dopo aver scelto "Consenti sempre" il problema è andato via. Per sempre.

+0

Questo potrebbe essere un problema se si sta tentando di firmare un pacchetto e si sta accedendo alla macchina mac tramite ssh. – bikram990

+0

@ bikram990 -precisamente! Questo è ciò che ha causato il problema - ed è la soluzione. –

3

tenta di sbloccare portachiavi da questo terminale:

security -v unlock-keychain -p "<Password>" "/Users/<UserName>/Library/Keychains/login.keychain" 
2

Sulla base Danny Schoemann's risposta e la mia ricerca ho trovato soluzione completa per me:

  1. Hai davvero bisogno il login alla vostra macchina Mac utilizzando GUI, prima volta e firmare qualsiasi cosa con il certificato necessario. Quindi verrà visualizzata la finestra di richiesta con l'opzione disponibile "Consenti sempre" per utilizzare questo certificato (o smth del genere).

    • Importante: se hai bisogno di usare productsign con ssh o altro sessione della console (come Jenkins), il certificato deve per installato nel sistema campo di applicazione, ma non in ambito utente. enter image description here enter image description here
  2. Se è necessario mantenere il certificato in ambito utente, è necessario sbloccare il portachiavi ogni volta a sessione della console quando si deve firmare qualcosa (come Alex scritto):

    security -v unlock-keychain -p "Password" /Users/<UserName>/Library/Keychains/login.keychain" 
    

    Puoi metterlo dentro lo script di build.

    Ovvio meno di questa soluzione - è necessario memorizzare la password in uno script non crittografato, che è insicuro, quindi preferisco la prima soluzione.

+1

Ho anche dovuto aggiungere il parametro '--keychain' a' productsign', altrimenti tenterebbe di aprire il portachiavi di login e fallire con 'CSSMERR_CSP_NO_USER_INTERACTION'. – UrOni

Problemi correlati