Xcode "La chiave privata per non è installata su questo Mac - distribuzione"


99

Ricevo sempre questo messaggio quando provo a inviare la mia app all'app store.

Ecco un'immagine del messaggio:

immagine

Sarebbe fantastico se qualcuno potesse aiutarmi a risolvere il problema in modo da poter inviare la mia app allo store.

Risposte:


90

Prova a seguire questi passaggi:

  1. Revoca il tuo certificato di distribuzione iOS esistente dal sito web per sviluppatori iOS.
  2. Genera un nuovo certificato di distribuzione iOS andando su Preferenze XCode-> Account-> Visualizza dettagli e quindi facendo clic su + sotto l'elenco delle identità di firma.
  3. Torna al sito web per sviluppatori e assicurati che tutti i tuoi profili di provisioning siano configurati con il nuovo certificato. (Dovrebbero essere tutti elencati come Attivi quando hai finito.)
  4. Torna a XCode e aggiorna l'elenco dei profili di provisioning.

Ho avuto lo stesso problema che hai avuto tu e questo lo ha risolto perfettamente.


Grazie, la tua soluzione mi salva la giornata (stavo maledicendo Apple da 4 ore).
JJ86

Sto riscontrando lo stesso problema e i passaggi proposti sopra lo risolvono, ma ne sto incontrando un altro in questo momento durante la convalida dell'app "il pacchetto non è valido le nuove app e gli aggiornamenti inviati all'app store devono essere pubblici" chiunque può aiutare su Questo?
Maystro

Un sacco di persone hanno già fatto questa domanda: stackoverflow.com/...
Ben Visness

@Fabian Boulegue Penso che i voti indichino che questa è la risposta migliore. Se potessi contrassegnarlo come accettato, sarebbe fantastico :)
Ben Visness,

Questo dovrebbe essere contrassegnato come risposta. Funziona a
meraviglia

50

Questo mi ha risolto senza ricominciare da capo:
1. Apri Accesso Portachiavi sulla macchina utilizzata per generare le chiavi private
2. Seleziona Portachiavi-> Accesso e Categoria-> Certificati sul lato sinistro
3. Individua il due certificati Sviluppatore iPhone: [nome sviluppatore] e Distribuzione iPhone: [nome sviluppatore]
4. Selezionali entrambi, fai clic con il tasto destro e scegli Esporta 2 elementi ...
5. Inserisci una password a tua scelta, salva su disco e ottieni il .p12 -file sull'altra macchina che non firma
6. Apri il file, inserisci la password e dovresti essere a posto.


8
E se non ho più accesso alla macchina che ha generato le chiavi private?
Aaronsnoswell

2
@aaronsnoswell Devi generare nuove chiavi per la macchina su cui stai attualmente lavorando
Nik

Quindi devi generarne uno nuovo.
HelloWorld

Dopo aver importato la chiave privata nel mio portachiavi, non funzionava ancora per me. Tuttavia, un semplice riavvio lo ha fatto funzionare ...;)
fredpi

7. Riavviare la macchina. Sembra che non abbia visto la nuova chiave privata nel portachiavi a meno che non abbia riavviato. Presumo sia perché lo stai aggiungendo al portachiavi di accesso che deve essere caricato all'accesso?
TenaciousJay

15

Avendo un problema simile, dopo diversi giorni di test, controlli, tentativi di riparazione e così via, ciò che ha funzionato per me era semplicemente:

  1. Apri le preferenze di Xcode (pannello Account)
  2. Fare clic su "Gestisci certificati".
  3. Aggiungi un nuovo certificato.

Poi tutto ha ripreso a funzionare.

inserisci qui la descrizione dell'immagine


12

Ho anche sperimentato questo e ho combattuto il processo per 4 ore. finalmente ho fatto quanto segue

  1. Eliminate tutte le chiavi e le certificazioni private e pubbliche nel mio Accesso portachiavi
  2. Eliminati tutti i profili di provisioning
  3. Eliminato tutti gli AppID - (Probabilmente non era necessario farlo perché volevo una lavagna pulita)
  4. Ho cancellato le mie certificazioni sul sito Developer.Apple
  5. Creato un nuovo profilo di sviluppo con caratteri jolly
  6. Creato un nuovo profilo SPECIFICO per l'app che stavo distribuendo (quindi aveva il nome dell'app invece di *, nell'AppID)
  7. Creato un nuovo certificato di sviluppo dal sito web.
  8. Ho scaricato il certificato intermedio (Worldwide Developer Relations Certificate Authority) da quando ho cancellato anche quello dal mio portachiavi
  9. Ho creato la richiesta di firma della certificazione (CSR), ho seguito le istruzioni alla lettera per aggiungerla al mio accesso al portachiavi. e caricato il CSR.
  10. Una volta aggiunta la certificazione, mi sono assicurato di rinominare le chiavi pubblica e privata e ho aggiunto commenti alla casella delle informazioni, in modo da poter ricordare cosa ho fatto.
  11. Ho creato un nuovo certificato di distribuzione ripetendo i passaggi 7,9, 10 per la distribuzione in modo da poterlo scaricare sull'App Store.

Spero che questo aiuti qualcuno a sapere che puoi cancellare tutto e ricominciare da capo. Ho caricato tutti i certificati su un Macbook Pro olf che ha iniziato a sfaldarsi la scorsa settimana. Quindi ho ricevuto un nuovo Mac Air la scorsa settimana, ma non riuscivo a ricordare quali chiavi, e di certo non ricordavo di avere due set di uno privato e uno pubblico per lo sviluppo e uno per la distribuzione. (Se hai più di 1 distribuzione, credo che avresti set aggiuntivi.)

Steve


Ricordo di averlo eseguito, con successo, in XCode 4. Sai come rimuovere tutti i profili di provisioning (passaggio 2) in XCode 5?
Danny

1
Prima che qualcuno esegua i passaggi 1-4 di "eliminazione", sarebbe consigliabile tentare di esportare il certificato tramite KeychainAccess come descritto in uno dei commenti di seguito, quindi importarlo sul computer di destinazione.
andrewz

4
Che soluzione. Dovrei comprare anche un nuovo laptop?
breakline

5

Mi sono imbattuto nello stesso problema e dopo aver imprecato contro Apple, ho capito che era colpa mia.

1.- Go to developer.apple.com / Certificates / Production
2.- Download your certificate

Questo ha funzionato per me, grazie dopo aver provato altre risposte.


certificato scaricato e aggiunto all'accesso al portachiavi. Ma non funziona.
famfamfam

4

Vale la pena controllare in Accesso Portachiavi per assicurarsi di non avere più chiavi con lo stesso nome. Inoltre, molto spesso quando mi sono imbattuto in problemi di firma del codice, la soluzione rapida è stata quella di ricominciare il processo (creare nuove coppie di chiavi, certificati e profili di provisioning).

Buona fortuna!


4

Vai a Preferenze -> Account -> Seleziona l'ID Apple che stai utilizzando -> fai clic sul pulsante "Visualizza dettagli ..." -> quindi fai clic sul pulsante più e seleziona il pulsante "Distribuzione iOS". Maggiori dettagli qui .


3

Sembra che tu sia arrivato al punto di generare un certificato di distribuzione, quindi devi aver generato una coppia di chiavi ad un certo punto. Sviluppa su più macchine? Esporta il profilo dello sviluppatore dalla macchina che lo possiede e importalo in questa macchina.


Credo che tu possa scaricarlo anche dal prov. portale
El Guapo

Beh, normalmente mi limito a sviluppare da quel computer ... beh, ho anche ottenuto il mio certificato di sviluppatore e distributore, forse è qualcos'altro? Proprio come le informazioni qui è uno screenshot del mio profilo ... dl.dropbox.com/u/659484/pic%202.png
Fabian Boulegue

6
No, non puoi scaricare la chiave privata dal portale di provisioning. È privato. Non lo dai ad Apple.
Jim

2
Il certificato è un file che Apple ti fornisce che dice "Sì, questa chiave privata è approvata da Apple". La chiave stessa è separata. Non hai la chiave su quel computer, altrimenti ci sarebbe una freccia di divulgazione accanto ad essa. Devi aver avuto quella chiave a un certo punto affinché il certificato esista. Se non utilizzi altri computer e non lo hai installato su un account diverso sul tuo computer, devi averlo eliminato.
Jim

2
Se non hai la chiave privata e non puoi ripristinarla da un backup, dovrai generare una nuova coppia di chiavi, generare un CSR per esso, caricare il CSR su Apple, scaricare il nuovo certificato che Apple genera in risposta , crea un nuovo profilo di provisioning per la distribuzione e utilizza quel profilo per creare la tua applicazione. Fondamentalmente, segui le istruzioni di installazione che Apple ti dà all'inizio.
Jim

2

È semplice, accedi all'account utente (magari su un Mac diverso) che è stato utilizzato per creare il certificato di distribuzione. Apri Accesso Portachiavi ed esporta la loro chiave privata. Quindi installalo sul tuo portachiavi.


2

Il mio problema era che Xcode non era nell'elenco di controllo degli accessi per la chiave privata. Puoi risolvere questo problema nell'accesso al portachiavi senza generare una nuova coppia di chiavi.

Apri l'accesso al portachiavi. Sul lato sinistro seleziona login e I miei certificati. Seleziona il tuo certificato di distribuzione e fai doppio clic sulla tua chiave privata. Seleziona il controllo di accesso e aggiungi Xcode all'elenco se non è presente.

Riavvia Xcode e crea un nuovo archivio. Ora dovrebbe trovare la chiave privata.


1

In realtà ho appena chiuso e riaperto xCode e poi tutto è tornato alla normalità.


0

Ho la soluzione:

La tua azienda ha un Company (Enterprise Distribution) .pem e CompanyEnterpriseDistribution.p12 devi installarli anche tu.


0

Ho un account aziendale in Apple. Ho risolto il problema:

1) nel sito Web dello sviluppatore Certificati, identificatori e profili
2) in Profili di provisioning -> sviluppo
3) vai a Provisioning di sviluppo -> modifica
4) quindi scarica e fai doppio clic.


0

Prova questo..

  • Nelle tue "Preferenze di sistema" seleziona "Sicurezza e privacy".

  • Fare clic sull'icona "Blocca" nell'angolo inferiore sinistro.

  • Cambia "Consenti app scaricate da" da "Ovunque" a "App store Mac e sviluppatori identificati".

-Poi prova a costruire.


0

Per coloro che stanno cercando di aggiornare un'app dopo un po 'di tempo, è necessario rinnovare il proprio profilo di Porvisioning in Apple Development Center, quindi andare semplicemente su Certificati sul lato sinistro del proprio Apple Development Center, scaricare il certificato di distribuzione e aprirlo .

Xcode farà il resto e ti consentirà di eseguire l'app.

Saluti!


0

Per me è che non ho installato il mio certificato di produzione. (Ho già installato il certificato di sviluppo che)

Dopo aver scaricato il certificato di produzione e installato nel portachiavi, ha funzionato per me.


0

Questo ha risolto per me senza ricominciare da capo:

  1. Rigenera il file "CertificateSigningRequest.certSigningRequest" da un altro macbook.
  2. rigenerare i certificati " * Grid Information Technology Co., Ltd"
  3. rigenerare i profili di provisioning

0

Sto costruendo e distribuendo ipa di sviluppo per la mia app iOS beta. Ho dovuto aggiungere ripetutamente nuovi dispositivi all'elenco di quelli consentiti e ho avuto molti problemi creati da questo. Questa volta sto documentando e condividendo un problema del genere e la soluzione ...

Ho aggiunto un nuovo udid alla mia lista nel centro per sviluppatori, ho creato un archivio e ho scoperto che ipa non è stato trovato nel profilo incorporato in ipa. Quindi, ho aggiornato i miei profili di provisioning in XCode (per ottenere un elenco aggiornato) e questo errore è stato causato dalla mancanza della chiave privata (come illustrato all'inizio di questo thread).

Allora non ho potuto costruire un altro archivio. Inoltre, questo ha creato errori di firma del codice durante il tentativo di compilare il progetto.

Dopo tanto dolore l'ho risolto in questo modo:

In XCode, vai su Preferenze ... scheda Account. Fare clic sul pulsante Aggiungi (al centro a sinistra) e selezionare "Sviluppo iOS". Questo creerà una nuova identità di firma.

Ora dovresti essere in grado di utilizzare il nuovo profilo di provisioning per creare l'archivio.

Inoltre, gli errori di compilazione dovrebbero essere corretti. Torna nel progetto, scheda "Generale", seleziona la "squadra" e riprova a costruire. Potrebbero essere presenti altre finestre di dialogo relative alle autorizzazioni. Fai clic su "correggi" o "consenti sempre" quando richiesto.

Nota: il Centro membri e l'elenco dei portachiavi diventeranno un disastro, con duplicati per gli ID di firma, ma almeno tutto funziona. Potresti provare a ripulirlo ...


0

Ho creato un nuovo certificato di distribuzione, quindi modificato il mio profilo di provisioning esistente in modo che punti a quel nuovo certificato, quindi in Xcode> preferenze> account> visualizza i dettagli ho aggiornato i miei certificati di firma.

ha funzionato come un fascino


0

Ho un'altra risposta (oltre al mio post precedente). Oggi, la mia chiave privata è scaduta (come ho scoperto guardando KeyChain Access) e una nuova era nell'elenco. Come? Idk ... Forse dall'utilizzo del pulsante XCode "fix the problem" che mi è stato presentato, o tirando un aggiornamento per i profili di provisioning come ho descritto nell'altro mio post, ne è stato creato uno nuovo automaticamente? ...

Ad ogni modo, ho effettuato l'accesso al centro di sviluppo, ho trovato il profilo di provisioning che volevo utilizzare e ho fatto clic su "modifica". Ho quindi potuto selezionare "Certificati". Ho scoperto che quello desiderato non era stato selezionato. L'ho selezionato e ho fatto clic su "genera" per ricreare il profilo di provisioning. Poi sono stato in grado di scaricarlo. Ho trascinato e rilasciato il file sulla mia icona del dock XCode. Questo l'ha risolto!


-2

questo accadrà perché hai formattato il tuo Mac e reinstallalo o stai sviluppando da un nuovo Mac.

se non puoi fare quanto sopra e hai il tuo vecchio certificato e profili esportati dal vecchio mac

dovrai rimuovere i profili di autorizzazione con caratteri jolly dal centro sviluppatori Apple, e anche dai certificati dovrai rimuovere quelli vecchi solo i certificati generali di sviluppo e produzione.

quindi dovrai crearne di nuovi e creare nuovi profili di provisioning per l'app che devi caricare su apple.

per ora non è necessario eliminare tutti i profili di provisiong, ma sicuramente sarà necessario crearne di nuovi per le app che non si creano per esso.

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.