Sto cercando di automatizzare il processo di creazione di app per iPhone con un certificato particolare. Quindi immagina se diversi utenti hanno caricato il loro certificato nel sistema ed è stato immediatamente disponibile per firmare il codice. Voglio farlo senza alcuna interazione. Inoltre non voglio ingombrare il sistema o accedere al portachiavi con certificati utente diversi. A tal fine ho:Come faccio ad aggiungere autorizzazioni al codice per firmare un'app dal nuovo portachiavi senza alcuna interazione umana
- disattivato il requisito in XCODE per richiedere la firma del codice per una build.
- sviluppato uno script Ruby per creare un'applicazione tramite lo strumento da riga di comando xcodebuild
- creato uno script per creare automaticamente un nuovo portachiavi per un utente del mio sistema
- scritto una sceneggiatura per codificare firmare un iphone app costruito.
Tutto funziona, ma ho bisogno di premere manualmente invio quando il programma codesign tenta di esercitare il permesso di segno. I miei portachiavi sono tutti sbloccati. Stranamente funziona se faccio il portachiavi al portachiavi di default, ma non è scalabile, cioè potrei avere solo un processo di build in corso in un dato momento.
Quando ho manualmente Clicca sempre permetto per quel processo, ottengo una voce nella mia discarica portachiavi che assomiglia a questo:
entry 1:
authorizations (6): decrypt derive export_clear export_wrapped mac sign
don't-require-password
description: privateKey
applications (2):
0: /usr/bin/codesign (OK)
Così sto pensando che ho bisogno di usare il comando autorizzare in sicurezza pre-autorizzare il codesign per tali permessi. La pagina di sicurezza è piuttosto scadente. Non riesco a farlo funzionare utilizzando comandi come questo:
sicurezza -v autorizzazione -nuovo segno |/usr/bin/codesign [codice segno vars che punta ad app e un portachiavi specifico]
Qualcuno ha qualche idea?
sicurezza sblocco -p –
Ho sbloccato il portachiavi da sempre. Quello che ho scoperto è che se prima andavo in xcode e facevo una singola build, tutte le build successive sembrano funzionare bene anche su altri portachiavi. Così ora: 1. creare un nuovo portachiavi (ho più utenti quindi è troppo difficile gestire tutto in un portachiavi) 2. impostarlo come il portachiavi predefinito 3. sbloccarlo. 4. Costruire tramite la creazione di xcode con la firma del codice e il set di cert tramite un file xcconfig. Questa non è una grande soluzione b/c è un problema per impostare nuovi server. Esplorerò più execute-with-privs, ma trovo la documentazione del comando di sicurezza terribile. – cmos