Stiamo usando Jenkins come il nostro server CI per la nostra squadra iOS con la seguente configurazione:Jenkins iOS costruiscono utilizzando le credenziali e sviluppatore profilo
- server master su OSX, non è in esecuzione qualsiasi lavoro
- 2 slave su OSX in esecuzione il nostro lavoro di integrazione + UI test
Attualmente tutte la firma di identità e profili di provisioning per le applicazioni vengono caricate ogni slave che rende l'amministrazione un po 'noioso e l'aggiunta di un nuovo nodo al cluster ancora più doloroso.
Per ovviare a questo abbiamo guardato in utilizzando le credenziali plugin con profili di sviluppatori e importare il profilo come il primo passo di compilazione su tutti i lavori di iOS, ma si trovano di fronte a questioni principali:
- Lo sviluppatori di importazione il profilo sembra funzionare la prima volta (almeno per la creazione delle voci del portachiavi) ma il lavoro non riesce con un errore "nessun profilo di provisioning corrispondente", anche se il profilo sviluppatore contiene tutti i profili di provisioning richiesti dalla destinazione.
- Seconda manche sulla stessa di lavoro non riescono sempre con un errore "portachiavi già esiste"
Abbiamo provato alcuni arounds di lavoro per il secondo numero l'aggiunta di un passo guscio di accumulo di rimuovere il portachiavi particolare, ma ancora di fronte a il primo errore. Se installiamo manualmente il profilo sullo schiavo, la costruzione passa, ma questo vanifica lo scopo di utilizzare il plugin delle credenziali.
Cosa ne pensate?
Solo una cosa da aggiungere: se il nome del lavoro ha spazi come il mio ha fatto (che in genere è una cattiva idea) si vuole devi inserire il nome del portachiavi tra virgolette come "lista sicurezza-portachiavi -s" jenkins - $ {JOB_NAME} "' – zbu