Certificato di distribuzione / chiave privata non installata


102

Utilizzando Xcode 9.1, dopo aver creato un'app iOS, voglio archiviarla e caricarla su appStore per il beta test. Ma ottengo il seguente problema dopo aver fatto clic sul pulsante Upload to the App Store...e aver scelto Automatically manage signing:

"My Name" ha un certificato di distribuzione iOS ma la sua chiave privata non è installata.

Non so perché questa "chiave privata non è installata", ma il certificato di distribuzione potrebbe essere stato creato su un computer diverso o qualcosa del genere. In ogni caso:

Qual è il modo più semplice per recuperare la chiave privata mancante e installarla? Per far funzionare le cose.

Risposte:


82

Puoi avere un solo certificato di distribuzione. Unisce una chiave pubblica, nota ad Apple, con una chiave privata, che risiede nel portachiavi di un computer. Se questo certificato di distribuzione è stato creato su un altro computer, la chiave privata si trova nel portachiavi di quel computer. E questo certificato di distribuzione non funziona senza di esso.

Quindi, per utilizzare questo certificato di distribuzione su questo computer, devi trovare quel computer, aprire Accesso Portachiavi, individuare ed esportare la chiave privata, inviarla per posta o portarla in altro modo a questo computer e importarla nel portachiavi di questo computer.

Se vai nel pannello Prefazione account in Xcode e fai doppio clic sul tuo Team, vedrai una finestra di dialogo che ti aiuta con questo. Se vedi il certificato di distribuzione e viene visualizzato Non nel portachiavi, puoi fare clic tenendo premuto il tasto Ctrl su quel certificato per ottenere una voce di menu che ti consente di inviare un'e-mail a chiunque abbia creato il certificato e chiedere loro di inviarlo a te. Quella persona può utilizzare la stessa importazione per scegliere Esporta certificato e può inviare tramite posta elettronica il certificato esportato.

In entrambi i casi, la chiave privata o il certificato esportato verranno password. Dovrai conoscere la password per usarla.


1
La mia prima prova seguendo il tuo suggerimento non ha funzionato. Molto probabilmente perché non l'ho fatto bene. Una domanda che mi pongo è quando vado ad Accesso Portachiavi dove è stato creato il certificato. Come trovo la chiave privata? Sembra che Accesso Portachiavi mostri, in alcuni punti, milioni di oggetti chiamati tutti con lo stesso nome. Quindi non sono affatto sicuro di aver fatto quella parte come avrei dovuto.
Michel

32
Bene, inviare una mail a me stesso chiedendo la domanda che ora ti sto chiedendo probabilmente non sarà efficace :)
Michel

1
Ma penso ancora che la tua risposta mi abbia messo sulla strada giusta, quindi devo approfondire un po 'di più.
Michel

Finalmente ho trovato la mia strada per aggirare questo problema. Ma sfortunatamente non ho finito con l'intera faccenda della firma. Ho fatto un post diverso con una domanda separata: stackoverflow.com/questions/47258499/…
Michel

Grazie per questo @matt! Nel mio caso, ho creato un certificato di distribuzione iOS utilizzando il CSR che ho creato sul mio dispositivo, ma poi quando l'ho installato nel portachiavi, non c'è nessuna chiave privata legata al certificato. Posso compilare, ma non so dove sia la chiave privata, quindi non ho potuto dare il file p12 ai miei compagni di squadra. Sebbene sia un caso diverso, grazie ai tuoi consigli su come andare al riquadro Account Xcode, sono stato in grado di esportarlo in p12. :) Ora, va tutto bene, ma mi chiedo dove diavolo sia nascosta quella chiave privata che non viene mostrata insieme al certificato nel portachiavi.
KarenAnne

286

Aggiornato (luglio 2020) (xcode 10-12)

  1. vai a Xcode - Preferenze - Account - Gestisci certificati
  2. Fare clic su +in basso a sinistra, quindiApple development
  3. Aspetta un po ', quindi fai clic Done

È tutto. Potresti voler revocare anche il vecchio certificato su developer.apple.com .

Vecchia risposta

Passaggio 1: - xcode -> prodotto -> archivi -> Fare clic su Gestisci certificato inserisci qui la descrizione dell'immagine

Passaggio 2: - aggiungi la distribuzione ios inserisci qui la descrizione dell'immagine


7
Questo non funziona perché non succede nulla quando clicco sul segno più. Non mi viene data un'opzione per "Distribuzione iOS".
arnoldbird

2
Se accedo a Gestisci certificati tramite Xcode> Preferenze> Account, il segno più è attivo come mostrato nel passaggio 2 sopra.
arnoldbird

11
Questa sarebbe la risposta migliore
kishorekumaru

2
Wow :-D. Risolto il problema per me. O questo non dovrebbe essere possibile o Xcode non dovrebbe disturbarti a farlo.
Joshua R.

3
Attualmente in Xcode 10.3 Xcode - Preferenze - Account - Gestisci certificati
Anton

26

Questa risposta è per "One Man" Team per risolvere questo problema rapidamente senza leggere troppe informazioni su "Team"

Passaggio 1) Vai al browser web, apri il tuo account sviluppatore. Vai a Certificati, identificatori e profili. Seleziona Certificati / Produzione. Vedrai elencato il certificato per cui mancava la chiave privata. Fare clic su Revoca. E segui le istruzioni per rimuovere questo certificato. inserisci qui la descrizione dell'immagine Passaggio 2) È tutto! torna a Xcode per convalidare la tua app. Ora ti chiederà di generare un nuovo certificato. Ora stai caricando felicemente le tue app.


11

EDIT: pensavo che l'altro computer fosse morto, quindi sto risolvendo la mia risposta:

Dovresti esportare il certificato dal primo computer con la sua chiave privata e importarlo nel nuovo computer.

Preferisco il modo iCloud, esegui il backup su iCloud e lo metto nel nuovo computer.

Se non puoi farlo per qualche motivo, puoi revocare il certificato nel sito degli sviluppatori Apple, quindi lasciare che Xcode ne crei uno nuovo per te, creerà anche una nuova chiave privata e la memorizzerà nel tuo portachiavi, solo assicurati di eseguirne il backup nel modo che preferisci


2
È un consiglio terribile.
matt

4
Secondo le mie conoscenze non succede niente di male quando si revoca il certificato .. Sai qualcos'altro?
Yitzchak

Sì; può esportare la chiave privata dal computer 1 al computer 2. Ciò che stai avvisando farà sì che il certificato di distribuzione smetta di funzionare sull'altro computer! Perché è che una buona cosa?
matt

2
Pensavo che l'altro computer fosse morto
Yitzchak

7

Aggiungi un nuovo certificato di produzione qui , quindi scarica il file .cer e fai doppio clic su di esso per aggiungerlo al portachiavi.

Andrà tutto bene ora, non dimenticare di riavviare Xcode !!!


1
per me l'errore si è verificato ancora, ho dovuto fare clic sul segno più per aggiornarlo e funzionare
Zack

6

revoca tutto il certificato di distribuzione per developer.apple.com e convalida la tua app in Xcode ci sarà la possibilità di creare un nuovo certificato di distribuzione dopo aver esportato la chiave per un ulteriore utilizzo.

Questo lavoro per me.


5

Le risposte delle persone qui riguardo alla generazione della chiave dal computer sono accurate. Ma se le cose continuano a non funzionare, prova a riavviare Xcode dopo aver installato un certificato


4

Solo per chiunque altro lo faccia, le risposte sopra sono corrette ma può ancora creare un po 'di confusione, soprattutto se si dispone di più certificati. Questi sono stati i passaggi che ho fatto:

1) Per prima cosa prendi nota della data nel certificato di distribuzione effettivo in cui manca la sua chiave privata. Quindi vai all'applicazione portachiavi sull'altro computer e digita IOS nella barra di ricerca. Mostrerà tutte le tue chiavi IOS Developer e Distribution, quindi dovrai trovare quella giusta.

2) Fare clic sulla freccia destra di ciascuna voce di distribuzione IOS per rivelare il certificato e trovare quello con la data corretta ed esportarlo facendo clic con il tasto destro e selezionando Esporta.

3) Quindi importalo nel portachiavi del nuovo computer e almeno con XCode 9.3 lo riconosce immediatamente e corregge l'errore in modo da poter ora caricare il tuo risultato.


Grazie! Vorrei aggiungere che nella visualizzazione predefinita non vedi la freccia sinistra che ti consente di espandere la chiave per rivelare il certificato. È necessario selezionare Chiavi nel pannello Categoria. Solo allora puoi selezionare il certificato ed esportarlo. Se invece esporti la chiave privata, riceverai un errore quando la importi sull'altro computer.
Clafou

4

Se stai utilizzando il certificato in un nuovo computer o meno. La cosa più semplice da fare sarebbe revocare il precedente certificato relativo al progetto. Quindi ricaricare nel negozio. Xcode ne genererà uno nuovo.


2

Nel mio caso Xcode non stava accedendo ai certificati dal portachiavi, ho seguito questi passaggi:

  1. eliminare i certificati dal portachiavi.
  2. riavvia il mac.
  3. generare nuovi certificati.
  4. installare nuovi certificati.
  5. cartella build pulita.
  6. costruire il progetto.
  7. di nuovo pulire la cartella build.
  8. archivia ora. Funziona.

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.