2015-07-27 17 views
6

Utilizzo di Xcode 7B4 e Server 5B4 con un progetto Carthage. Per costruire il progetto ho bisogno di prima costruire le sue dipendenze. Così ho aggiunto un passo prima dell'integrazione al bot con il seguente codice:Identità di firma codice non trovata nel server Xcode

echo "Bootstrapping dependencies..." 
export PATH=$PATH:/usr/local/bin 
cd Alchemic 
carthage bootstrap --use-ssh --use-submodules 
echo "Ready." 

L'esecuzione di questo me stesso tutto funziona. Ma quando il bot gestisce ottengo un

Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) were found. 
CodeSign error: code signing is required for product type 'Framework' in SDK 'iOS 9.0' 
A shell task failed with exit code 65 

Controllo del bot Io stesso ho come la squadra e la scansione dei server directory che sembra avere tutti i file di provisioning richieste. Quindi suppongo che l'utente del server non abbia accesso alle chiavi o qualcosa del genere.

Qualcuno ha idea di cosa potrei mancare?

+0

Mi sono imbattuto in qualcosa di simile con cialde di cacao, non sono sicuro di come Carthage lo fa, ma i baccelli di cacao hanno creato quadri che hanno anche bisogno di essere firmati e forniti con il codice. Non sono sicuro se hai già configurato o meno – bolnad

+0

Grazie per la risposta. Una delle grandi cose di Cartagine è che non rovina affatto il tuo progetto. Gestisce e crea solo dipendenze. Quindi ti lascia totale libertà su come includere il nostro codice. A differenza di CocoaPods che calpesta tutto su tutto. Poiché Carthage crea singolarmente ciascun progetto, la firma del codice viene gestita su base progetto per progetto. Quindi penso che si tratti più di un problema generale che di uno specifico di Cartagine. – drekka

+0

interessante, dovrò provarlo su uno dei miei progetti – bolnad

risposta

-2

È molto semplice. Vai a Preferenze XCode -> Account -> Fai clic sul tuo ID Apple e premi il pulsante Visualizza dettagli Premi Premi Aggiorna alla fine premi Fatto. Andrà bene. enter image description here

+0

No, questo non risolve il problema. Questo non è un problema XCode. – drekka

12

Ho avuto un problema simile. La soluzione per me è stato:

  1. Da Xcode sul computer locale, aperto Preferences ->Accounts -> fare doppio clic sul gruppo associato con il tuo ID Apple (avete bisogno di uno :)) -> nella Signing identity pannello, selezionare un'identità e fare clic sull'icona a cremagliera su export. Salva questo in un file.
  2. caricare il generato .p12 file di al vostro sistema di compilazione, e aggiungerlo alla sistema portachiavi (non per l'utente del) trascinando al Accesso Portachiavi finestra
  3. sul sistema di compilazione Accesso Portachiavi, accedere ai certificati appena installati (dovrebbe essere sotto System ->Certificates) e fare clic sulla freccia accanto al nome per espandere e visualizzare la chiave privata. Fare clic con il tasto destro sulla chiave ->Access control - e consentire a tutte le app di accedere a questo elemento (probabilmente non sicuro) o aggiungere l'app codesign all'elenco di applicazioni che possono utilizzare questa chiave
  4. Assicurarsi che in Server sul computer di costruzione, che la sezione XCode sia abilitata e aggiunta al team di sviluppo corrispondente per quel certificato.
+0

Sembra che il nuovo Xcode (7 Beta 4) non supporti l'esportazione delle identità e per qualche motivo non compaia più nel portachiavi. Hmmm .... – drekka

+1

In Xcode 7 offre una nuova opzione "Esporta account sviluppatore". Il file creato è un file zip che è possibile estrarre per visualizzare i profili ei certificati di provisioning esportati. Qualcuno sa come importare questo file sul server Xcode? – Awsed

+0

@Awiso è sufficiente aggiungere questi elementi al portachiavi? – Marco83

1

Ho riscontrato problemi simili con i robot Xcode Server e la firma del codice. Sto usando Server 5.1 e Xcode 7.3. Quello che in definitiva mi ha aiutato a lavorare attraverso di loro era questo post del blog: http://matt.vlasach.com/xcode-bots-hosted-git-repositories-and-automated-testflight-builds/

Vale a dire, le parti del post più utili sono stati:

  1. Assicurarsi che i profili di provisioning vengono copiati nella directory di Xcode Server si trova in: /Library/Developer/XcodeServer/ProvisioningProfiles/ Xcode Server non è in grado di visualizzare i profili che Xcode scarica automaticamente dal portale degli sviluppatori su ~/Library/MobileDevice/Provisioning Profiles. Puoi copiare quelli in posizione o scaricarli manualmente dal Web e spostarli.
  2. Assicurarsi che la chiave di firma (chiave privata) e il certificato siano nel portachiavi System. Ancora una volta, Xcode crea questi nel contesto del tuo account utente. Se li hai generati con Xcode sul server, semplicemente copiali dal tuo portachiavi login allo System. Se stai importando da un altro computer utilizzando un file .p12, assicurati di importare nel portachiavi System in Accesso Portachiavi.

Per ulteriori dettagli, controllare quel post del blog. Mi ha davvero aiutato.