Xcode 8 mostra l'errore che il profilo di provisioning non include il certificato di firma


224

Xcode 8 mostra l'errore che il profilo di provisioning non include il certificato di firma.

Questo problema riguarda Xcode-8 solo con Xcode 7, stesso profilo di provisioning che mostra il relativo certificato identificato.


1
È necessario a) aggiornare il profilo di provisioning con il certificato desiderato oppure b) installare il certificato (potrebbe essere necessario migrarlo anche da un altro mac con chiave privata, se non era stato originariamente impostato nel mac)
pedrouan

1
a) aggiornare il profilo di provisioning con la certificazione desiderata. - L'ho già fatto ma non ho funzionato b) Installa il certificato - Certificat è già installato ed è stato creato nella stessa macchina, quindi non ho bisogno di esportare alcuna chiave o qualcosa del genere. E come ho detto, non c'è alcun problema con xcode 7 nella stessa macchina. ciò significa che non c'è alcun problema con l'installazione
Satish Mavani,

Controllare questo, è abbastanza fresco: stackoverflow.com/questions/39565906/...
pedrouan

Risposte:


253

Esistono molti modi per risolvere questo problema, come abilitare la firma automatica, ecc. Ma se vuoi capire il motivo di questo errore devi guardare il messaggio di errore.

Indica che il profilo di provisioning selezionato nella "scheda Generale" non contiene il certificato di firma selezionato in "Impostazioni build" -> "Identità firma codice".

Di solito ciò accade se è stato selezionato un certificato di distribuzione per l'identità di debug in "Impostazioni build" -> "Identità firma codice".

Se ciò accade in "Firma (debug)", potrebbe anche essere che "Identità firma" -> "Sviluppo iOS" non sia incluso nel profilo di provisioning.


49
Signore, sei un gangster certificato.
J.beenie,

4
Wow! Questa è la risposta effettiva alla domanda posta. Chiedendosi perché non è la risposta accettata. Grazie Signore !
Junaid Mukhtar,

1
Il modo intelligente in cui dovrebbe essere ogni sviluppatore intelligente.
Almas Adilbek,

1
Questo dovrebbe essere contrassegnato come risposta accettata, che spiega il problema e la soluzione e non la generazione casuale di Xcode.
Andreas777,

1
Questa è una risposta brillante
peccatore

186

Controlla il tuo portachiavi per identità in cui manca una chiave privata. Avevo installato più certificati di distribuzione per lo stesso team, uno dei quali mancava la chiave privata. Xcode stava solo controllando la prima identità corrispondente nel portachiavi e la utilizzava automaticamente invece di quella che includeva la chiave privata.

inserisci qui la descrizione dell'immagine

Rimuovendo l'identità corrispondente che non aveva una chiave privata, Xcode ha rilevato nuovamente l'identità corretta.


Grazie! Esattamente quello che stava succedendo qui
Thomás Calmon,

9
Non ho risolto il problema per me. Questo è probabilmente uno di quei problemi che possono verificarsi da più cause alla radice.
Ash,

3
Tutti i miei certificati hanno chiavi private, quindi sicuramente la causa può essere diversa.
RAM237,

8
Nel mio caso c'erano diversi Certs (= identità di firma) nel portachiavi di accesso con lo stesso nome, ma di date diverse (nota nel portachiavi di sistema ne avevo solo uno con la data corretta). Rimuovere tutto tranne quello corretto ha fatto il trucco.
RAM237,

5
Simile a @ RAM237, ho più certs con lo stesso nome a cui sono ancora associate chiavi private. Rimuovere tutto tranne quello corretto ha aiutato.
Junjie,

87

Per risolvere questo problema,

Abilito solo la "Gestione automatica della firma" nella scheda generale delle impostazioni del progetto, prima di abilitare avevo paura che potesse avere alcuni effetti collaterali, ma una volta abilitato che funziona per me.

Spero che questo aiuti per gli altri! inserisci qui la descrizione dell'immagine


Risolvi questo problema ma ho ottenuto questo errore, "<sconosciuto>: 0: errore: Swift non supporta l'SDK" iPhoneSimulator9.3.sdk "Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ bin / swiftc fallito con il codice di uscita 1 "
Mohsin Qureshi,

1
Dovresti provare riavviando il simulatore ed eliminando i dati derivati.
Satish Mavani,

Ho provato, ma non ha funzionato. è sostanzialmente in mostra grazie ad Alamofire. Penso che swift 3 non sia compatibile con Alamofire 3.0
Mohsin Qureshi,

Ho provato lo stesso ma dandomi questo errore * ha impostazioni di provisioning contrastanti. * viene automaticamente firmato per lo sviluppo, ma è stata specificata manualmente un'identità di firma del codice in conflitto iPhone Distribution. Imposta il valore dell'identità della firma del codice su "iPhone Developer" nell'editor delle impostazioni di generazione o passa alla firma manuale nell'editor del progetto.
user3625547,

22
La peggiore idea, perdi tutte le tue configurazioni lasciando che xcode gestisca il tuo certificato. Lazy bastard Xcode genererà solo nuovi certificati!
Silom,

64

Per coloro che dovrebbero continuare a usare non auotamatic per qualche motivo

Apri keyChain Access per vedere se ci sono due stesse certificazioni, se ce ne sono due o più, basta cancellarne una e funzionerà :)


Questo ha davvero aiutato.
Ron,

Se qualcuno incontra questa persona per strada, comprale una birra. Grazie
Greg Hilston,

2
Non può essere visto sulla strada perché i pinguini non si trovano sulle strade, ma in mare. a proposito. Grazie.
MRizwan33,

Questo è stato per me :)
slippytoad,

34

Ho riscontrato questo problema dopo aver recentemente aggiornato Xcode alla versione 9.3 Il problema era nel certificato di firma del codice (sotto debug) impostato sul certificato di distribuzione anziché sul certificato di sviluppo, quindi questo mi ha impedito di installare l'app sui miei dispositivi.

Ecco cosa ho fatto per risolvere questo problema.

Progetto -> Target -> Seleziona la tua app -> Impostazioni build -> Identità firma codice -> Debug -> Tocca due volte "Distribuzione iPhone" e cambialo in "Sviluppatore iPhone".


Questo è stato così semplice, ma ha lottato con questo per un po '. Grazie gentile signore.
JM-AGMS,

Grande. Ha funzionato perfettamente. Perché questo non accetta come risposta giusta?
ZhengGe Che

27

Ho deselezionato e quindi selezionato l'opzione "Gestisci automaticamente la firma". Ciò ha risolto il problema per me.


Una finestra di dialogo è venuta chiedendo se volevo abilitare la firma automatica. Anche se ho premuto Annulla, funzionava ancora .
aepryus

@JamesWierzba è in Generale-> Firma. Proprio come nella risposta di Satish Maven sopra.
Loke,

RISPOSTA
PIÙ

Inoltre, basta scorrere tra i diversi profili per risolverlo. Potrebbe anche essere necessario prima pulire le chiavi per la risposta precedente.
MindWire,

23

Per quello che vale la firma automatica non è riuscita ogni volta fino a quando non ho appena cancellato manualmente i profili locali in: ~ / Library / MobileDevice / Provisioning Profiles

Dopo che la firma automatica ha funzionato perfettamente e ha ottenuto i profili giusti dai server Apple.

Ciò riguardava solo alcune build, in particolare quelle per le quali avevo creato manualmente i profili per l'app watch.


2
Per me, non avevo duplicati, ma dopo aver eliminato e scaricato nuovamente i miei profili di provisioning, sembrava funzionare correttamente.
Julian K,

2
Ho provato tutto il resto e niente ha funzionato fino a quando non ho cancellato i profili esistenti e lasciato che Xcode li scarichi di nuovo
Ron Myschuk il

1
Spiacenti, come posso accedere a questo / / Library / MobileDevice / profili di provisioning? Cerco sul mio finder e non trovo alcuna cartella "Library".
Chen Li Yong

1
@ChenLiYong Questa è una cartella nascosta. Premere CMD + Shift + . per mostrare tutti i file nascosti.
tmuecksch

19

Per coloro che ancora lottano con questo problema in Xcode8. Per me è stato un duplicato del problema del certificato, ecco come l'ho risolto:

Ho letto la risposta di Nick e poi ho iniziato la mia indagine. Ho controllato tutte le chiavi e i certificati nel mio caso particolare (all'interno di ~ / Library / Keychains / System.keychain).

Quando ho aperto il file, ho scoperto che avevo due certificati di distribuzione iPhone (che era il certificato che Xcode mi stava richiedendo), uno con la chiave privata di distribuzione iOS che ho usato dall'inizio e un altro certificato di distribuzione iPhone che chiave privata aveva un nome (distribuzione iOS: NAME) che non mi era familiare. Ho eliminato questo ultimo certificato, avviato nuovamente Xcode e il problema era scomparso. xCode non è stato in grado di risolvere quel conflitto ed è per questo che dava sempre errori di certificato di firma.

Controlla i tuoi portachiavi, forse hai un certificato duplicato.


Esattamente quello che mi è successo.
funct7,

Questo è esattamente il problema nel mio caso, ho avuto una confusione durante l'impostazione di Fastlane Match e ho finito per avere 3 chiavi duplicate nel mio portachiavi
Minh Thai,

18

Se si utilizza la firma manuale (che sicuramente incoraggerei), questo errore può verificarsi perché Xcode pensa che dovrebbe firmare una build di rilascio con un certificato per sviluppatori, che ovviamente non è incluso in un profilo di provisioning di rilascio.

Esiste un'impostazione di build che definisce quale certificato deve essere utilizzato per quale configurazione di build. Per modificarlo, vai a creare impostazioni e cerca Identità firma codice . Quando espanso, dovrebbero esserci righe separate per ogni configurazione di build (solitamente Debug e Release) con nella seconda colonna la sua identità selezionata (di solito Developer iOS o iOS Distribution). Assicurarsi che sia impostato sull'identità corretta per ogni configurazione di build.

In alcuni casi, è anche possibile espandere le configurazioni di compilazione. Assicurarsi che anche i relativi elementi secondari siano impostati sulle identità corrette.


2
risposta perfetta,
Nasir

1
Grazie! Era esattamente quello di cui avevo bisogno.
Amadeu Cavalcante Filho,

12

Puoi anche risolvere i problemi di firma del codice con l'ottimo toolkit Fastlane . Gli autori hanno compiuto molti sforzi per automatizzare efficacemente la costruzione, la firma di app iOS (e altro).

Quindi, nella suite citata, c'è uno strumento sighche risolve magicamente qualsiasi problema di firma, da cui il nome :) La cosa bella qui è che questo strumento incapsula una conoscenza dei problemi di firma comuni e può rilevare e risolvere la maggior parte di essi.

Fastlane è installato come gemma Ruby:

gem install fastlane

E poi semplicemente invocato:

fastlane sigh --development

Rispondi a due domande e voilà:

[11:56:55]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:57:01]: Creating new provisioning profile for 'com.myapp' with name 'com.myapp Development'
[11:57:06]: Downloading provisioning profile...
[11:57:09]: Successfully downloaded provisioning profile...
[11:57:09]: Installing provisioning profile...

Infine, vai su Crea impostazioni -> Firma e passa al profilo di provisioning appena creato, il cui nome è appena stato visualizzato nell'output del comando.

Questo esempio è relativo al problema di firma del codice di sviluppo (in esecuzione sul dispositivo). Controlla la documentazione del sospiro per tutte le altre opzioni.


Dopo aver letto la parte Impostazioni di costruzione, mi rendo conto di poter scegliere il certificato utilizzato dalla profilazione. Grazie.
Carlos Linares,

12

Ha avuto lo stesso errore. I profili sembrano rinnovati, nuovi certificati aggiunti, l'ho persino controllato durante il download. Ha inoltre revocato i certificati dell'ex sviluppatore, esclusi dal profilo di fornitura. Ma Xcode mi sta ancora chiedendo dei precedenti certificati con errore:

No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found

quindi, cosa ho fatto per risolverlo:

  1. Vai Build Settings->Signing ->Code Signing Identity
  2. Trova tutti i certificati "FORMER_DEVELOPER" e scegli i necessari.

Spero che possa aiutare qualcuno.


Grazie mille .. Mi ha aiutato a risolvere il mio problema
Gokul G,

9

Nel mio caso, nel portachiavi avevo due certificati con lo stesso nome, ho rimosso uno dei certificati che è duplicato, quindi ha risolto il problema.


Posso confermare, è stato il problema anche nel mio caso.
atereshkov,

5

"Abilita firma automatica" e quindi selezionando una squadra dal menu a discesa mi ha aiutato con questo esatto problema.


4
  1. Elimina il certificato dello sviluppatore che non ha una chiave privata.
  2. Elimina il profilo di provisioning dal tuo computer utilizzando la cartella go (~ / Library / MobileDevice / Provisioning Profile)
  3. Quindi seleziona prima deseleziona l'opzione Gestisci automaticamente la firma nelle impostazioni del progetto con la selezione del team.
  4. Canta nell'account sviluppatore Apple e modifica il profilo di provisioning selezionando tutti i certificati per sviluppatori disponibili, quindi scarica e aggiungi a XCODE.
  5. Seleziona il profilo di provisioning e l'identità della firma del codice nelle impostazioni di compilazione del progetto

4

Xcode 11

Questo è l'errore che ho ricevuto

Il profilo di provisioning "XXX" non include il certificato di firma "Sviluppo Apple: XXX (XXX)". `` `

Ora Xcode 11 ha creato automaticamente un certificato "Sviluppo Apple: XXX" valido per tutte le piattaforme

https://developer.apple.com/account/resources/certificates/list

Devi solo farlo

  1. Vai su https://developer.apple.com
  2. Vai al tuo profilo di provisioning
  3. Controlla se questo certificato è selezionato

4

Avevo le chiavi private rimanenti dai certificati che avevo revocato, i certificati erano spariti ma non le chiavi private. La loro eliminazione ha risolto il problema.

Per trovarli:

  1. Apri l'accesso Portachiavi
  2. Fai clic su "Chiavi" nella categoria nel menu a sinistra
  3. Cerca iOS Developer: ... "chiavi a cui non è associato un certificato
  4. Li ho cancellati e il problema è andato via

La chiave evidenziata nell'immagine è una chiave privata di esempio senza certificato.

L'elemento evidenziato è stato uno dei principali problemi che hanno causato l'eliminazione del problema risolto


3

Ho lo stesso problema. Ho cambiato il mac. E quando ho scaricato il certificato Xcode, ho ricevuto un messaggio di errore: "L'errore è che il profilo di sicurezza non include la firma del certificato".

1) Vai su https://developer.apple.com/account/ios/profile/limited/edit Seleziona il progetto => modifica => Certificati => Seleziona tutto => Crea => Scarica

2) In Xcode: File di progetto => Firma (debug) => Profilo di provisioning => Importa profilo => Seleziona il file con 1


2

Per me, nessuna delle soluzioni di cui sopra ha funzionato. Stavo migrando da due vecchi Mac a un nuovo Mac, cercando di far funzionare i profili di rilascio / debug su Xcode SENZA Xcode che li gestiva automaticamente.

La soluzione per me era che quando sono andato e ha creato due nuovi certificati, ho ANCHE dovuto andare nei miei profili di fornitura, e aggiungere (sotto sia la distribuzione che dev) i nuovi certificati ai profili di provisioning in modo da riconoscere. Dopo aver fatto questo e scaricato, xcode ha rimosso tutti gli errori ed è bene andare.

Spero che questo aiuti qualcuno!


2

Ho ricevuto una di queste email da Apple:

Caro John Doe,

Il seguente certificato è stato revocato da un membro del team di sviluppo o è scaduto:

Certificato: sviluppo iOS

Nome del team: Honey Team, LLC

Ciò non influisce sulle app che hai inviato all'App Store o sulla tua capacità di aggiornare le tue app. Se si utilizzano profili di provisioning che contengono questo certificato, è necessario ricrearli prima di poter essere riutilizzati. Per i dettagli, consultare la sezione "Panoramica sulla firma dell'app" della Guida di Xcode.

I migliori saluti,

Supporto per il programma per sviluppatori Apple


Ho creato un nuovo certificato che ha revocato il certificato precedente (localmente e sul Mac di qualsiasi altro sviluppatore). Affinché funzioni, devo scaricare i nuovi profili di fornitura.

La soluzione è:

  • accedi all'account sviluppatore Apple
  • rimuovi / revoca i precedenti certificati creati a mio nome.
  • aggiungere il nuovo certificato al profilo di fornitura. È possibile identificare quello più recente in base alla data di scadenza
  • scaricarli di nuovo da Xcode. Xcode >> Account >> Scarica tutti i profili
  • riavvia Xcode

Personalmente non avevo tale accesso. Questo accesso era disponibile solo per l'amministratore del nostro team, quindi non ho schermate né sono sicuro che questi passaggi siano corretti al 100%.


2

Non l'ho ancora visto menzionato, ma se hai ancora problemi dopo aver ricreato i tuoi profili di provisioning, eliminando quelli esistenti nella cartella Profili di provisioning, controllando i duplicati nel tuo portachiavi, ecc. (Tutte le altre risposte ITT), apri il tuo Target> Impostazioni build> Firma codice e assicurati che tutto appaia coerente. Ad esempio, avevo modificato Identificazione firma codice per debug in un'identità di distribuzione, che ovviamente non funzionava poiché il profilo di provisioning di sviluppo non ha il certificato di distribuzione e stava causando l'errore in primo luogo.


Grazie! - Nel mio caso, in Target> Impostazioni build> Identità firma codice> Rilascio era impostato su Sviluppatore iOS anziché su Distribuzione iOS.
Fiach Reid,

2

Se stai tentando di caricare l'app su iTunes Connect (i profili di provisioning sono impostati su Distribuzione), vai su Impostazioni progetto -> Impostazioni di costruzione -> Firma codice. Assicurarsi di impostare tutte le opzioni di debug e rilascio sul proprio profilo di provisioning di distribuzione.


2

Il problema sembra iniziare a verificarsi in Xcode 11 .

  • Vai a Apple Developer
  • Trova il profilo di fornitura corretto
  • Premi Modifica nell'angolo in alto a destra
  • Scegli l' opzione (Distribuzione) in Certificati. (Penso che sia una nuova opzione / tipo di certificato che Apple ha introdotto anche se non sono riuscito a trovare alcuna documentazione)
  • Opzionale: Elimina tutti i profili di provisioning in (~ / Library / MobileDevice / Provisioning Profiles /)
    vai su Xcode -> Preferenze-> Account-> Scarica profili manuali

inserisci qui la descrizione dell'immagine


Non funziona per me.
Shourob Datta,

1

Ecco i passaggi risolti per me (per coloro che affrontano lo stesso problema in XCode 9.2):

  1. Sono stati eliminati manualmente i profili locali in ~ / Library / MobileDevice / Profili di provisioning.

  2. Eliminato e creato tutti i certificati e il profilo di provisioning dall'account degli sviluppatori.

  3. Rimosso l'account degli sviluppatori da Xcode e aggiunto di nuovo.

Risolto il mio problema! :-)


0

Fare clic ma poi annullare "Abilita firma automatica" ha funzionato per me, anche se la modifica effettiva è stata:

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

o in Xcode si chiama Always Embed Swift Standard Libraries


0

Ho avuto lo stesso problema e la ragione era un centesimo. Profilo e certificato errati sono stati selezionati nelle impostazioni di compilazione. L'ho fatto solo prima di pochi giorni. Pertanto, non è necessario abilitare "automatico" all'interno di xcode. Controlla i profili nelle impostazioni di compilazione prima di farlo.


0

Prova a scaricare i certificati / profili direttamente dal centro membri anziché farlo da Xcode.

Ha funzionato per me quando li ho scaricati manualmente dal centro membri.


0

Ho lottato con esso per molti giorni.

Passaggio 1: eliminazione di tutti i certificati, profilo di provisioning, appID, chiave ecc. Dall'account sviluppatore.

Passaggio 2: ricreati i certificati di notifica push, il profilo di provisioning, l'ID app ecc.

Passaggio 3: eliminati tutti i certificati dal portachiavi.

Passaggio 4: cancellato tutto il profilo di provisioning da ~ / Library / MobileDevice / Provisioning Profiles.

Passaggio 5: aggiunto solo il file di provisioning richiesto e testato. Funziona bene


0

Significa che devi eseguire una delle seguenti operazioni:

  1. È necessario aver creato un certificato nel Centro per sviluppatori e quindi aver incluso tale certificato nel profilo di provisioning che verrà importato in XCode.
  2. Altrimenti, se stai utilizzando un certificato creato da qualcun altro, inducili a condividere / esportare il loro certificato e chiave privata (file .p12) su di te e devi includerlo nel tuo portachiavi. Fare riferimento qui

Una soluzione per # 2 quando non sei in grado di ottenere il certificato e il file .p12 dal creatore sarebbe quella di selezionare l'opzione "Gestisci automaticamente la firma".


0

Ciò accade perché il profilo di provisioning non riesce a trovare il file per il certificato a cui è collegato.

Aggiustare:

  1. Verifica quale certificato è collegato al tuo profilo di provisioning facendo clic su modifica sul profilo di provisioning nella sezione Certificati, identificatori e profili della dashboard di Apple Developer
  2. Scarica il certificato dalla dashboard
  3. Fai doppio clic sul file per installarlo nel tuo portachiavi
  4. Trascina il file in Xcode per essere sicuro che sia collegato

L'errore dovrebbe essere sparito ora.


0

Questo problema è dovuto alla chiave privata nel certificato nel tuo profilo non corrispondente a quella nel tuo portachiavi. Lo risolvo entro

  1. elimina tutti i certificati per sviluppatori iPhone nel portachiavi.
  2. elimina tutti i certificati nell'account Apple.
  3. usando xcode "Gestisci certificati" per aggiungere un certificato, a volte hai ancora un certificato sul tuo Mac, ma non so dove sia per ora, e se aggiunto con successo, anche il tuo account Apple visualizzerà quel certificato, quindi puoi creare il tuo profilo con quel certificato e scaricare ... vai a 5
  4. se si utilizza "Gestisci certificati" non è possibile aggiungere certificati, è possibile creare un nuovo certificato e rimanere passaggi.
  5. finire.

stessa risposta con problema di firma del codice in Xcode versione 8 .

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.