Ricevo un errore di impostazioni di provisioning in conflitto quando provo ad archiviare per inviare un'app iOS


312

Ora sto provando a Prodotto> Archivia la mia app iOS per inviare. Tuttavia, visualizzo i seguenti errori:

AppName ha impostazioni di provisioning in conflitto. AppName viene automaticamente firmato per lo sviluppo, ma è stata specificata manualmente un'identità di firma del codice in conflitto con iPhone Distribution. Impostare il valore dell'identità della firma del codice su iPhone Developernell'editor delle impostazioni di compilazione o passare alla firma manuale nell'editor del progetto

La firma del codice è necessaria per il tipo di prodotto 'Applicazione' nell'SDK 'iOS 10.1' '

La situazione non cambierà nemmeno quelli con cui ho riprovato un intero processo per ricreare certificati iOS o profilo di provisioning.

Mi stavo preparando come iOS Distributionin TARGETS > Code Signing Identity > Release > Any iOS SDK. Quando ho modificato l'impostazione come iOS Developerqui e l'impostazione in PROJECTS > Code Signing Identity > Release > Any iOS SDKas iOS Distribution, sono riuscito ad archiviare. Mi chiedo se è necessario impostare come iOS Distributionnell'editor di destinazione o no. E se è obbligatorio, per favore qualcuno mi faccia sapere come posso aggirare questo errore.

La mia versione di XCode è 8.1.


4
È necessario assicurarsi che le impostazioni di firma del codice non siano in conflitto tra il progetto e la destinazione.
max_

1
Penso di aver provato ogni combinazione di impostazioni di firma del codice tra il progetto e la destinazione. Il mio problema è in qualsiasi impostazione, non riesco ad avere successo quando imposto come iOS Distributionnell'editor Target e mi chiedo se è necessario.
Vanagar,

1
@BenLeggiero Si veda anche stackoverflow.com/a/52573190/341994 . C'è un modo manuale per ripulire, come spiego lì.
matt

Grazie per il puntatore, @matt! Ciò non si applica direttamente al problema sul quale stavo lavorando, poiché stiamo realizzando un'app per Mac e non utilizziamo integrazioni come Game Center. Aggiungerò un segnalibro per dopo, però!
Ben Leggiero,

Risposte:


897

Ho avuto lo stesso errore, ma avevo già selezionato "Gestisci automaticamente la firma".

La soluzione era deselezionarla, quindi ricontrollarla e selezionare nuovamente il team. Xcode ha quindi risolto qualsiasi problema causasse da solo.


15
Grazie! Questo ha funzionato per me, per chiunque stia usando Cordova per generare una piattaforma iOS stavo ricevendo questo errore, anche usando l'ultima versione di Cordova. la firma automatica è stata selezionata per impostazione predefinita, ma nessuna squadra selezionata. è stato solo quando ho deselezionato Gestisci firma e ho selezionato la firma automatica e il team è stato in grado di farlo funzionare. grazie Erin!
Jtello,

2
Quando lo controllo di nuovo, la firma del codice imposta automaticamente Developer iOs, ma devo impostarlo su iOs Distribution e quando imposto iOs Distribution Xcode di nuovo con la stessa eccezione di cui sopra.
ami rt

1
@amirt Ho esattamente lo stesso problema del tuo. L'hai riparato?
Kimi Chiu,

@KimiChiu Sì, fratello, l'ho fatto.
ami rt

2
Questo è giusto, ma per chiarire un po 'di più, ecco quello che ho sperimentato: - Devi creare manualmente un profilo di provisioning della distribuzione (tramite il sito Web degli sviluppatori Apple) in anticipo. La firma automatica non lo fa per te. - Nel caso in cui le identità di firma del codice nelle impostazioni di costruzione fossero in qualche modo rovinate: tutte e 4 devono essere impostate su "Sviluppatore iOS" (anche quelle per il rilascio) affinché la firma automatica funzioni
jakob.j

153

Ho avuto lo stesso problema, ho notato che se vuoi rilasciare la tua app iOs e pubblicarla su App Store non devi assolutamente inserire "Identità di firma del codice" come versione, mantienila come sviluppatore iO.

Vai a Il tuo progetto -> Crea impostazioni -> Identità firma codice e metti tutto allo sviluppatore di iOs.

inserisci qui la descrizione dell'immagine


3
Sì, questo funziona. Ma per le build ad hoc devo disabilitare la firma automatica e andare lì e impostare invece "Distribuzione iOS". Perché Apple l'ha implementato in questo modo? Non ha alcun senso :(
algrid

è la migliore risposta. xcode riscriverà l'impostazione in locale quando "archivia".
Tom Marvolo Riddle,

si prega di guardare il "Review xxx.ipa content:" visualizzato dopo l'archiviazione, è "Certificato: distribuzione iOS".
Tom Marvolo Riddle,

Questa dovrebbe essere la risposta corretta. La soluzione accettata per questa domanda è parzialmente corretta.
Sanchit Kumar Singh,

72

Per coloro che provengono da Ionic o Cordova, puoi provare quanto segue:

Apri il file yourproject/platforms/ios/cordova/build-release.xcconfige modifica da questo:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

in questo:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer

e prova a eseguire ios cordova build ios --releasenuovamente il file per compilare una build di rilascio.

Riferimento: https://forum.ionicframework.com/t/ios-build-release-error-is-automatically-signed-for-development-but-a-conflicting-code-signing-identity-iphone-distribution-has- state-specificata manualmente / 100.633 settimi


3
Dopo aver provato tutte le altre risposte, questa è quella che alla fine ha funzionato per me. Grazie!
mikewagz,

1
Il file ora si chiama build-release.xcconfig . Ti sei perso una 'c' Ecco uno script bash per farlo: `` `#! / Usr / bin / env bash sed -i" "" s / distribuzione iPhone / iPhone Developer / g "piattaforme / ios / cordova / build-release.xcconfig uscita 0; ``
Kent Bull,

3
Puoi anche commentare le righe; è stata impostata l'impostazione per sviluppatori iPhone build.xcconfig, queste righe hanno la precedenza.
Jules

3
Ho semplicemente eliminato quelle due righe e ho lasciato che Xcode gestisse automaticamente la firma.
Ryan H.

3
Puoi utilizzare il plug-in cordova-custom-config per farlo automaticamente con le seguenti righe in config.xml: <custom-preferenze buildType = "release" name = "ios-XCBuildConfiguration-CODE_SIGN_IDENTITY" value = "iPhone Developer" xcconfigEnforce = " true "/> <custom-preferenze buildType =" release "name =" ios-XCBuildConfiguration-CODE_SIGN_IDENTITY [sdk = iphoneos *] "value =" Sviluppatore iPhone "xcconfigEnforce =" true "/>
FactualHarmony

64

Stai pensando troppo a questo. Il processo è notevolmente migliorato ed estremamente facile in Xcode 8. Approfitta di questo fatto.

Fase 1 : non tentare in alcun modo di configurare le impostazioni della firma del codice nelle Impostazioni di compilazione. Non avvicinarti a loro. Lo rovinerai assolutamente. Invece, modifica la destinazione ed esegui tutto il lavoro nel riquadro Generale. Approccio migliore: imposta la firma automatica del codice: basta inserire il tuo team e selezionare la casella di controllo, in questo modo:

inserisci qui la descrizione dell'immagine

Passaggio due : assicurati di avere un'identità di distribuzione iOS (certificato). Puoi verificarlo in Preferenze Xcode> Account, Visualizza dettagli. Sarebbe anche una buona idea in questo momento andare al centro membri e procurarti una fornitura mobile App Store per questa app, scaricarla e installarla.

Passaggio tre : scegli "Dispositivo iOS generico" come destinazione e scegli Prodotto> Archivia. L'app verrà compilata, l'archivio viene creato e ora sei pronto per l'invio all'App Store.


Grazie mille! È riuscito. Consentitemi di confermare il passaggio 2: il caricamento in basso di "fornitura mobile". È "Profili di provisioning iOS (distribuzione)"? Ho appena fatto doppio clic sul file scaricato ed è l'installazione che hai citato qui?
Vanagar,

Si, esattamente. Il file scaricato è stato ora copiato nel mondo di Xcode (puoi eliminare l'originale) e verrà visualizzato da Xcode quando lo invii effettivamente all'App Store.
matt

È possibile che in determinate circostanze non sia necessario creare il file di provisioning mobile dell'App Store, poiché Xcode lo creerà automaticamente. Ma trovo che sia una buona idea crearne uno comunque.
matt

2
È divertente che tutti i tutorial di distribuzione che ho visto ti dicano di cambiare manualmente le impostazioni di firma del codice su ogni destinazione. Avevo attivato Gestione automatica, ma non me ne ero nemmeno reso conto.
Dan

1
@andreszs La firma automatica fa un buon lavoro nel creare un certificato e un profilo di sviluppo, che è tutto ciò che serve per sviluppare e archiviare. Ma quando arriva il momento di distribuire su app store, trovo che sia una buona idea creare il profilo di distribuzione manualmente e scaricarlo, pronto per l'uso durante il processo di esportazione.
matt

52

Se ricevi questo errore

L'app ha impostazioni di provisioning in conflitto. L'app viene firmata automaticamente, ma il profilo di provisioning "ID" è stato specificato manualmente. Impostare il valore del profilo di provisioning su "Automatico" nell'editor delle impostazioni di compilazione o passare all'accesso manuale nell'editor del progetto.

quindi assicurati di avere l' opzione PROVISIONING_PROFILE vuota in Impostazioni build target :

inserisci qui la descrizione dell'immagine


1
Non ho fatto distinzione tra l'utente e il profilo di build del sistema ... quindi grazie per aver sottolineato che era "PROVISIONING_PROFILE"
petrosmm

Questo mi ha aiutato.
Rafal Zawadzki,

Questo è stato l'errore che ho cercato e ottenuto il link a questa domanda SO, ma questa è la risposta di cui avevo bisogno. Si noti che il tentativo di specificare effettivamente un valore di "Automatico" non funziona. Non è necessario specificare tutto nonostante il messaggio di errore che dica altrimenti. Per me stiamo usando i file xcconfig, quindi si trattava di rimuovere l'impostazione nel file di configurazione.
user107172

29

Non dimenticare di farlo,

Seleziona il Progetto -> Impostazioni di costruzione. Cerca PROVISIONING_PROFILE ed elimina qualsiasi assurdità.


1
Probabilmente l'unica soluzione che l'ha fatto per me, grazie
Alexander Vitanov il

4
Ho fatto questo, insieme a deselezionare e ricontrollare la gestione automatica della firma nella scheda Generale e quindi selezionare nuovamente il team. Grazie Rein ed Erin. (Ehi guarda, i tuoi nomi sono anagrammi!)
Dave Levy,

Bene, questo è interessante @DaveLevy
Rein rPavi

Non ho dato così tanto credito perché il mio PROVISIONING_PROFILE non sembrava contenere spazzatura, aveva impostato "Automatico" e sembrava a posto. Eliminarlo e riattivare la firma automatica ha funzionato, però!
Rafael Nobre,

1
È impostato su "Automatico" e non può essere eliminato.
Dror Bar,

22

Se vieni dal mondo ionico. Potresti ricevere un errore di "firma del codice di conflitto" quando ti trovi nella fase "archivio", come di seguito:

... viene automaticamente firmato per lo sviluppo, ma un'identità di firma del codice in conflitto iPhone Distribution è stata specificata manualmente. 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. La firma del codice è necessaria per il tipo di prodotto 'Applicazione' nell'SDK 'iOS 10.x'

In questo caso, vai su Impostazioni build / sotto firma, identità firma codice e seleziona entrambi come sviluppatore iOS, non distribuzione.

Vai al menu: Prodotto / Archivio di nuovo, quindi il problema verrà risolto.


2
Il problema è che viene resettato ad ogni build ... Questo sta rovinando le nostre build automatizzate. Qualche idea su come modificarlo in uno script non interattivo?
Webberig,

1
Eccellente, questo ha risolto il problema per me. Questa soluzione ha perfettamente senso, col senno di poi e con un sacco di consumo di alcol.
Steven Kramer,

18

Per quelli che provengono da Ionic o Cordova, puoi provare quanto segue: Scollega i tuoi dispositivi ios dal computer prima ios cordova build ios --release(sembra cambiare il dispositivo di destinazione per la firma xcode).


6
Questa è la risposta più stupida e funziona completamente. Odio tutte le soluzioni alternative che abbiamo a che fare con Xcode per far funzionare un'app.
Jordan Benge,

è giusto. Quando ho avuto il mio iPad collegato invece del mio iPhone, ho visualizzato questo errore. Dopo aver disconnesso tutti i dispositivi iOS e averlo creato dalla riga di comando, ha funzionato bene dopo.
Neel,

Assolutamente giusto. Ho passato un giorno intero a cercare di risolvere questo problema e questa è l'unica soluzione che funziona per me.
Ulisesvera,

1
IOS mi fa arrabbiare .. tutto deve essere risolto attraverso una risatina .... altrimenti grazie amico
Seloka

15

Vai a creare impostazioni, cercare l'identità della firma del codice e impostare Qualsiasi valore SDK iOS per iOS Developer:

inserisci qui la descrizione dell'immagine


4
Sì, è esattamente quello che il messaggio di errore chiede di fare. Ma potresti spiegare perché mai usare "iOS Developer" per le versioni di rilascio avrebbe senso?
algrid,

stranamente questo è stato ciò che ha funzionato anche per il progetto generato dall'unità di qualche tempo fa
ina il

15

L'unica soluzione ha funzionato per me:

  1. Chiudi il progetto Xcode
  2. Utilizzando finder vai alla cartella del progetto
  3. Fare clic destro su .xcodeproj e selezionare "Mostra contenuto pacchetto"
  4. Fai clic destro su project.pbxproj vai su "Apri con" e scegli TextEdit
  5. Ora cerca l'istanza del tuo profilo di provisioning specificata nel messaggio di errore.
  6. Elimina tutti i testi trovati e lascia pulito i profili di provisioning.
  7. Salva e chiudi
  8. Apri Xcode
  9. Abilita gestisci automaticamente la firma

Godere! Spero che sia utile!


Sapevo che avrebbe avuto qualche problema con Xcode. Grazie un sacco uomo !!!! Stava mostrando automaticamente in Build Build for Provision Profile ma continuava a dare quell'errore. Grazie a Dio non ero l'unico a risolvere il problema.
Amber K,

In realtà può essere utilizzato se si dispone di un account sviluppatore e un'app, ma per molte app provoca altri problemi.
Goraga1,

9

Per farmi cambiare Code Signing Identitya tutti iOS Developerper tutti e due DebugeRelease .

E Code Signing Stylea Automatic.

inserisci qui la descrizione dell'immagine


8

Nel mio caso, ho impostato l'opzione "automatica" in Impostazioni build.

inserisci qui la descrizione dell'immagine


7

Prova una delle seguenti soluzioni

1.Rimozione e aggiunta della piattaforma iOS e ricostruzione del progetto per iOS

ionic cordova platform rm ios
ionic cordova platform add ios
ionic cordova build ios --release

2. Modifica dell'impostazione di creazione Xcode

La soluzione era deselezionarla, quindi ricontrollarla e selezionare nuovamente il team. Xcode ha quindi risolto qualsiasi problema causasse da solo.

3.Cambia il seguente codice in piattaforma

Questo non aveva alcun senso per me, dato che avevo impostato il progetto per accedere automaticamente a xcode. Come te, il segno di spunta e deseleziona non ha funzionato. Ma poi ho letto l'ultimo percorso del file indicato e l'ho seguito. Il percorso del file è APP> Piattaforme> iOS> Cordova> build-release.xconfig

E nel file, iPhone Distribution è esplicitamente impostato su CODE_SIGN_IDENTITY.

Modificare:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

Per:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer

7

Ho lottato a lungo, ho provato tutte le soluzioni proposte. Niente funziona per me.

Quindi ho riscontrato il problema: alla fine della scheda Impostazioni build erano presenti "Impostazioni definite dall'utente" per "PROVISIONING_PROFILE". Lo elimino per entrambe le impostazioni di build del progetto e del target. Quindi la firma automatica ha funzionato perfettamente.

Spero che questo possa aiutare qualcun altro. :)


6

Trova il file .xcodeproj e aprilo con un editor di testo

Trova i campi qui sotto e rendili così

CODE_SIGN_IDENTITY = "Sviluppatore iPhone"; "CODE_SIGN_IDENTITY [sdk = iphoneos *]" = "Sviluppatore iPhone";

PROVISIONING_PROFILE = "";

PROVISIONING_PROFILE_SPECIFIER = "";


6
  1. Generale -> Firma -> seleziona gestisci automaticamente la firma e seleziona squadra

  2. Crea impostazioni -> Firma -> Identità firma codice -> IMPOSTA TUTTO SU "Sviluppatore IOS"


4

L'unica cosa ha funzionato per me.

Apri il progetto -> Seleziona il tuo target -> Vai a Build Settings -> Cerca PROVISIONING ed elimina i profili selezionati.


2

Nel mio caso ho dovuto accedere al sito Web degli sviluppatori Apple e ripristinare l'elenco dei dispositivi.

Sembra che ora ti richiedano di farlo ogni anno al rinnovo dell'abbonamento, prima di poter aggiungere nuovi dispositivi e generare certificati.


2

Ho avuto lo stesso problema. Il mio è stato risolto cercando "profilo di provisioning" nell'impostazione di build dell'estensione di condivisione

Poi c'erano due campi "Profilo di provisioning" lì, uno regolare e uno deprecato. Quello normale era su Automatico ma quello deprecato no. Cambiare quello in Automatico ha anche corretto il mio errore.


2

Per quanto mi riguarda, avevo trascinato il dump_symsbinario e un mucchio di script nel mio target di build quando ho installato manualmente Firebase SDK. Rimuovendo quelli dal mio obiettivo e progetto risolto il problema.


Irreale, grazie per aver indicato la giusta direzione. Maggiori informazioni qui: stackoverflow.com/questions/41056047/…
Dror Bar

2

Usando Xcode 10: nessuna delle altre soluzioni qui ha funzionato per me.

Questo errore sembra essere qualcosa che non puoi correggere in Xcode 10

Ho dovuto ripristinare Xcode 9 per risolvere questo problema, quindi aggiornare nuovamente a Xcode 10 in modo da poter eseguire la mia applicazione su iOS 12 su un dispositivo non emulatore.

Qualsiasi altra soluzione trovata su StackTranslate.it o altrove, utilizzata in Xcode 10, mi ha inviato in un ciclo infinito di conflitti di provisioning o problemi di firma dei certificati. Sembra che la firma sia interrotta in Xcode 10 sia che si utilizzi il metodo automatico sia che si selezionino manualmente profili e certificati di provisioning.

Puoi ripristinare Xcode 9 eliminando prima Xcode 10 dalla cartella Applicazioni. Quindi, installa Xcode 9 utilizzando il file .xip elencato in questa pagina degli sviluppatori Apple .

In Xcode 9, usa l'opzione di compilazione automatica. Potrebbe essere necessario deselezionare "Gestisci automaticamente la firma" e riselezionarlo, inoltre potrebbe essere necessario revocare un certificato esistente su developer.apple.com .

Dopo aver ottenuto che l'app venga compilata correttamente in Xcode 9, puoi aggiornare di nuovo a Xcode 10 utilizzando l'App Store. Dopo aver riaperto l'applicazione in Xcode 10, tutto funzionava ancora. Potrebbe non essere necessario eseguire questa operazione, ma è necessario per creare per iOS 12 che richiede Xcode 10.


Prova ad aggiungere il flag --buildFlag = "- UseModernBuildSystem = 0"
Redwolf

2

Ho aperto il file di progetto in un editor di testo "Atom", quindi ho cercato l'id del profilo di provisioning e l'ho eliminato.


0

Cambia il tuo codice accedi al certificato di destinazione.


Grazie, ma l'ho provato molte volte negli ultimi 3 giorni e ogni volta ho fallito.
Vanagar,

0

Dopo l'aggiornamento a Xcode 8.3.2 ho avuto lo stesso errore con un progetto Cordova. Avevo bisogno di aggiornare Cordova (v7.0.0) e la piattaforma iOS (v4.4.0) per far funzionare la firma del codice.


0

Devi aggiungere un certificato di produzione e (o) scaricarne uno dal tuo account di sviluppo

inserisci qui la descrizione dell'immagine


0

Assicurati che l '"Identificatore del bundle di prodotto" nel nome delle impostazioni di build corrisponda all'identificatore di bundle effettivo. Questo ha funzionato per me.


0

Per me, devo passare da auto a manuale e passare a auto, stesso errore. Passa al manuale e modifica i profili di provisioning e le impostazioni di firma del codice e crea e ottieni errori, quindi torna automaticamente, quindi ha esito positivo.


0

Ho avuto lo stesso problema. Mi sono reso conto che era perché stavo usando xcode mentre lo stavo usando. Poiché gli aggiornamenti non sono stati installati correttamente, sono stati visualizzati questi errori. L'unica cosa che l'ha risolto è stato chiudere xcode e riaprirlo. Quando l'ho riaperto, mi ha richiesto di installare gli aggiornamenti. Dopo l'installazione degli aggiornamenti, gli errori sono scomparsi.


0

Il problema è nelle impostazioni Cordova.

Nota questo:

iPhone Distribution has been manually specified

Questo non aveva alcun senso per me, dato che avevo impostato il progetto per accedere automaticamente a xcode. Come te, il segno di spunta e deseleziona non ha funzionato. Ma poi ho letto l'ultimo percorso del file indicato e l'ho seguito. Il percorso del file èAPP > Platforms > ios > Cordova > build-release.xconfig

E nel file, iPhone Distribution è esplicitamente impostato per CODE_SIGN_IDENTITY.

Modificare:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

Per:

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer

È una cosa semplice e il messaggio di errore chiarisce che iPhone Distribution è stato specificato manualmente, ma in realtà non dice dove se non segui il percorso. Ho cercato e armeggiato con xcode per circa tre ore cercando di capirlo. Spero che questo aiuti chiunque in futuro.

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.