Xcode 4: reinstalla i certificati del portachiavi che elimino


85

Ricevo questo errore:

Errore CodeSign: l'identità del certificato "iPhone Developer: XXX" appare più di una volta nel portachiavi. Lo strumento di firma del codice richiede che ce ne sia solo uno.

All'inizio, però, non preoccuparti, andrò nel portachiavi e cancellerò quello duplicato (più vecchio), cosa che ho fatto. Sono tornato indietro, chiuso Xcode, riaperto Xcode e progetto, stesso errore. wtf ho pensato a me stesso. Torna nel portachiavi e il certificato è di nuovo lì. Elimino entrambi i certificati, ripeto e noto che mentre il progetto viene caricato, i due certificati che ho cancellato tornano nel portachiavi.

Dopo molte ricerche, mi sono assicurato di non avere il certificato nel portachiavi del sistema, cosa che non avevo. Ha anche fatto una pulizia e una ricostruzione. Quando avevo duplicati con Xcode 3, potevo semplicemente ripulire il duplicato del portachiavi ed ero bravo. Ma con Xcode 4 li reinstalla letteralmente in qualche modo quando apro il progetto. Ho persino cancellato tutti i file .cer sul mio sistema da cui forse li estraeva.

Eventuali suggerimenti?


1
Saluti. Ho avuto lo stesso problema. :)
RedBlueThing

Hai lo stesso problema. Succede perché Keychain non rimuove correttamente il certificato e si verifica una situazione in cui vengono visualizzati 2 certificati (ma uno non è valido). Basta rimuovere non validi nell'app Portachiavi e funzionerà correttamente. Ma è una soluzione temporanea. :(
Sergey Kopanev

Risposte:


103

La soluzione era entrare nell'organizer - sotto la libreria - profili di provisioning, eliminarli tutti e quindi reinstallare i profili di cui avevo ancora bisogno.


Sì! Posso confermare che funziona. Anche se continuavo a eliminare quello nel portachiavi, continuava a riapparire. Una volta rimossi i vecchi profili di provisioning dall'Organizer, tutto era normale. Grazie! :)
RoLYroLLs

1
Funziona anche per me! Grazie! Penso che quello che XCode4 sta cercando di fare è inserire i certificati dev nel tuo portachiavi per i profili prov che non li hanno, anche se i certificati dev sono scaduti.
iphone007

5
Ricorda inoltre di rigenerare il tuo profilo di provisioning se hai rinnovato il tuo dev cert. Non l'ho fatto e quando ho aggiunto di nuovo un vecchio profilo prov, il certificato dev scaduto associato è stato reinserito nel portachiavi, D'oh!
iphone007

Fai attenzione, in qualche modo ho cancellato il mio portachiavi di accesso cercando di eliminare i profili. Non sono sicuro di come sia successo perché sono abbastanza sicuro che l'area dell'elenco dei portachiavi fosse attiva quando ho premuto Elimina. Esegui il backup prima di eliminare e fai attenzione.
avance

Questo è utile ma, come altri hanno già detto, è effettivamente necessario accedere al portachiavi ed eliminare il certificato dello sviluppatore scaduto, non solo il profilo di provisioning.
Ron Srebro

33

Ho avuto lo stesso problema e le soluzioni di cui sopra non hanno risolto il mio problema (beh quasi).

Avevo lo stesso ID / certificato sviluppatore duplicato di cui tutti si lamentano e ho provato a cancellare tutti i miei profili, revocare / riemettere il mio certificato, assicurandomi che non ce ne fossero nel portachiavi di sistema, riavvio, ecc.

Alla fine si è scoperto non vi era un certificato nel portachiavi di sistema, uno che era scaduto e così è stato nascosto per impostazione predefinita nella lista.

Assicurati di poter vedere i certificati scaduti in KeyChain

Per farlo:

  1. Apri Accesso Portachiavi
  2. Fare clic sul menu Visualizza
  3. Fare clic su Mostra certificati scaduti
  4. quindi cerca ed elimina i certificati sviluppatore scaduti

Fantastico, sei un genio. Avevo fatto tutto elencato ovunque. Mi hai aiutato a risolvere un problema vecchio di mesi. Dio ti benedica!
Bushra Shahid

1
Si è scoperto che avevo un certificato scaduto sotto il portachiavi del sistema. Questo mi ha aiutato a trovarlo! Grazie!
christopher_f

11

Xcode 4 ha una nuova funzionalità "Provisioning automatico dei dispositivi". Si trova nell'organizzatore in libreria / profili di provisioning. Se lo hai abilitato, scaricherà automaticamente i tuoi profili di provisioning dal server di provisioning dello sviluppatore Apple e quindi otterrai l'errore di avere duplicati. Il modo più semplice per risolverlo è eliminare tutti i profili di provisioning e premere Aggiorna per "Provisioning automatico dei dispositivi". Questo caricherà i tuoi profili di provisioning dal server e risolverà il tuo problema.


Grazie per questo. Ho eliminato i miei profili e utilizzato il provisioning automatico dei dispositivi per recuperarli e il problema è stato risolto.
Sasho

Questa è la soluzione aggiornata, ha funzionato per me (dopo aver provato le altre soluzioni, sembrano essere obsolete)
Kasihasi

7

se vuoi fare confusione con l'accesso al portachiavi per rimuovere il certificato scaduto, puoi provare questo:

  • crea un nuovo portachiavi, chiamalo "scaduto" e sposta SOLO il certificato scaduto.
  • eliminare il portachiavi "scaduto" appena creato che contiene SOLO il certificato scaduto, quando richiesto selezionare "Elimina riferimenti e file".

il certificato scaduto scompare insieme al portachiavi. ha funzionato perfettamente per me.


6
  1. Rimuovi tutti i profili di provisioning da XCode Organizer;
  2. Rimuovere i vecchi certificati per sviluppatori da Accesso portachiavi;
  3. Genera profili di provisioning solo con il certificato per sviluppatori corretto;
  4. Scarica e installa i nuovi profili di provisioning;

-- MODIFICARE --

Unisci la risposta di @ Codezy e il commento di @ iphone007.


La tua risposta non ha risolto il problema, in realtà ho rimosso più volte i certificati per sviluppatori e i profili di provisioning, ma il vecchio certificato per sviluppatori viene sempre reinstallato. Ma il commento di @ iphone007 è utile, li unisco solo ...
Mr Ming,

2

Eliminando i profili di provisioning nella libreria di Organizer, inoltre, dovresti eliminare il certificato per sviluppatori iPhone in Accesso Portachiavi. (Il nome del certificato è probabilmente come "iPhone Developer: XXXXX ..." e indicato dal segno X rosso, poiché scaduto)


La semplice rimozione e reinstallazione dei profili di provisioning nell'Organizer non ha aiutato, ma il tuo suggerimento di rimuovere il profilo scaduto dal portachiavi lo ha risolto per me, grazie!
gulchrider

2

Ho impiegato mezza giornata per questo e finalmente ho trovato la soluzione

  1. Apri KeyChain Access.app
  2. Seleziona "Sistema" nel menu "Portachiavi" nella parte sinistra della schermata dell'applicazione Portachiavi
  3. Seleziona "Certificati" nel menu a discesa "Categoria"
  4. Rimuovi tutte le vecchie certificazioni.

Quindi chiudi Keychain.app e vai su Xcode -> Organizer

  1. Rimuovi tutti i profili di provisioning nel menu Libreria
  2. Rimuovi tutti i profili di provisioning nel menu Dispositivi
  3. Premere il pulsante "Aggiorna" nel menu Libreria -> Profilo di provisioning
  4. Aggiungi i profili necessari al tuo dispositivo

Costruisci di nuovo la tua app :)


1

Per i posteri, ecco la strategia per aggirare questo problema nel nostro script di build automatizzato:

  1. Prima di creare, spostare da parte la directory ~ / Library / MobileDevices / Provisioning Profiles
  2. Controlla se l' utilità di configurazione dell'iPhone è in esecuzione e chiudila (i certificati riappaiono sempre se questa app è aperta. In XCode 4.1 devi chiudere anche l'organizer).
  3. Corri costruisci
  4. Spostare nuovamente la directory dei profili di provisioning
  5. Profitto?

1

Ho provato tutto ciò che è stato suggerito qui, ma niente ha funzionato per me tranne che il reinstallazione di XCode 4.3 ha magicamente risolto il caso.


1

Ho trovato un modo davvero semplice per risolvere questo problema in 4.6.1. Puoi farlo senza riavviare nulla o eliminare alcun profilo!

Con Accesso Portachiavi e il tuo progetto Xcode aperto:

  1. In Xcode, apri Organizer - "Dispositivi" e seleziona la "squadra" con il certificato duplicato.
  2. Passa ad Accesso Portachiavi ed elimina i vecchi certificati duplicati. Nota: assicurati di attivare "mostra certificati scaduti" per non perderne nessuno.
  3. I certificati saranno scomparsi dal profilo "team" in Xcode Organizer.
  4. Pulisci il progetto e costruisci.

Spero che sia d'aiuto!


0

il metodo sopra non funziona per il mio caso

infine, vado al portachiavi

e cercare la chiave inserendo il nome

Ho finalmente trovato il certificato che dovrebbe essere cancellato prima. poi l'ho cancellato e il problema è stato risolto

è davvero frustrante, e non so se sia il bug ....... davvero estenuante.


0

Citando una risposta a un duplicato di questa domanda, alcuni dei bug di Xcode in quest'area possono essere risolti solo riavviando OS X .

Alla fine, ho ottenuto il successo eliminando tutto ciò che è menzionato in una qualsiasi delle risposte a questa domanda, riavviando, quindi installando manualmente le parti di cui avevo bisogno (non mi fidavo / provavo la funzione di download automatico del profilo / certificato).


0

Per quello che vale, @AndreasPrang, la tua risposta ha funzionato quando tutto quanto sopra no. Potevo vedere che il certificato scaduto non era da nessuna parte nel portachiavi, ma quando ho fatto una build, Xcode ha detto che lo era. Anche eliminare i profili di provisioning (tutti), selezionare il mio nome nella sezione Team e fare clic sull'icona di aggiornamento in basso a destra nell'organizzatore non ha aiutato. Il riavvio di Xcode non ha aiutato, ma l'arresto di XCode, l'eliminazione di ~ / Library / Developer / Xcode sì. Quando ho riavviato XCode, ha ricostruito tutto ed era felice.



0

Ho appena installato Xcode 4.6.1 e ho ricominciato ad avere questo problema. L'ultima volta è stato molto tempo fa. Ho eliminato i vecchi profili di provisioning e i certificati, ma non sono ancora riuscito a crearli.

Questa volta risulta che avevo 2 certificati elencati per me nell'account del team del portale per sviluppatori. Il primo era scaduto, il secondo no. Xcode ha continuato ad afferrare il primo che ha trovato durante l'aggiornamento (o forse entrambi).

Ho cancellato entrambi i certificati dal portachiavi, quindi ho scaricato manualmente quello valido dal portale Apple e l'ho aggiunto manualmente al portachiavi. Ora posso costruire di nuovo.

(E ho inviato una richiesta all'amministratore del team per rimuovere il vecchio certificato.)


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.