Xcode 10: non è stato trovato un profilo di provisioning valido per questo eseguibile


222

Da ieri ho riscontrato il seguente errore durante il tentativo di eseguire un'app sul mio dispositivo: "Non è stato trovato un profilo di provisioning valido per questo eseguibile". Questo è dopo l'aggiornamento a Xcode 10. Costruire con Xcode 9 la scorsa settimana ha funzionato senza problemi.

Ho controllato le altre discussioni sull'errore, ma nessuna delle soluzioni funziona.

Il problema non si limita a un singolo progetto a cui sto lavorando in quanto interessa diversi tutti di diversi team di firma.

Finora ho provato quanto segue:

  • Progetto di pulizia

  • Pulizia dei dati derivati

  • Disinstallando Xcode, eliminando qualsiasi preferenza e file ad esso correlati.

  • Installazione di Xcode su un Mac completamente diverso

  • Test con diversi dispositivi

  • Disabilitare il dispositivo nel profilo dello sviluppatore e consentire a Xcode di abilitarlo nuovamente.

  • Eliminare tutti i certificati nel portale per sviluppatori e ricrearli

  • Deselezionando e ricontrollando "Gestisci automaticamente la firma"

  • Cestinare il profilo di provisioning e consentire a Xcode di ricrearlo

  • Creazione di un profilo di provisioning manuale nel profilo dello sviluppatore

Il progetto non contiene test, quindi non ci possono essere problemi con impostazioni di firma errate su quella destinazione. Data / Ora è impostato su Automatico

Una cosa da notare è che nessun profilo di provisioning è elencato qui, ad eccezione di quello manuale che ho creato: https://developer.apple.com/account/ios/profile/

Mi aspetto che l'xcode generato ne venga mostrato come fanno per tutti gli altri client.

Di seguito sono riportate le impostazioni di firma attualmente in uso

impostazioni del profilo di provisioning

Devo ancora provare a eseguire il downgrade di Xcode a una versione precedente per vedere se funziona. A parte questo, non ho idea di cosa provare dopo.


Hai aggiunto l'account sviluppatore nelle preferenze di Xcode?
Ankit Jayaswal,

@AnkitJayaswal Più volte, non è mai riuscito a farlo funzionare. Sono stato in grado di risolverlo tuttavia eseguendo il downgrade a 9.4.1, quindi il problema sembra essere in qualche modo correlato a Xcode 10. Dovresti essere in grado di inviare app con la vecchia versione di Xcode per un po ', giusto?
Daniel Andersson,

2
Sì, puoi inviare le build da xcode 9 e la sua versione fino a marzo 2019 developer.apple.com/ios/submit
Ankit Jayaswal

Inoltre ho provato anche con Xcode 10 e non sto affrontando tali problemi di missing provisioning-profile.
Ankit Jayaswal,

3
Hai modificato la data del tuo iPhone oltre i dati di scadenza del certificato? Ho affrontato questo problema a causa di questo motivo.
Anuved Nayak,

Risposte:


478

Stavo lottando con questo oggi, è stato super frustrante. Per ora, vai in "File"> "Project Settings..."(o in alcuni casi "Workspace Settings...") e seleziona "Legacy Build System"dal "Build System"menu a discesa.


1
Questo ha funzionato anche per me, quindi posso creare app con Xcode 10 senza dover tornare a Xcode 9. Ho inviato una build ad App Store Conenct e sono riuscita a pubblicarla su TestFlight. Quindi ci sono un paio di soluzioni alternative disponibili fino a quando il problema non viene risolto correttamente. Qualche nota di Apple che dice per quanto tempo ti sarà permesso di usare il sistema di build legacy quando invii le app?
Daniel Andersson,

9
Ma cosa significa? Che effetto ha e come sappiamo che possiamo modificare nuovamente le impostazioni?
Siyah,

4
Questo ha funzionato su una build Cordova - ottimo lavoro. Evidentemente la CLI Cordova ha un argomento da saltare: cordova build ios --buildFlag = '- UseModernBuildSystem = 0' Vedi di più qui: github.com/apache/cordova-ios/issues/407
Victor

6
Non ci sono impostazioni del progetto in File. Ho dovuto fare clic su Impostazioni area di lavoro, quindi selezionare "Sistema build legacy" dal menu a discesa Sistema build in Impostazioni area di lavoro condivisa e per utente.
diavolo rosso,

9
Non funziona per me: ((. La mia versione di Xcode è 10.1. La mia versione del sistema operativo iPhone è 12.1
Hamed Ghadirian,

94

@Stephen ha risolto questo problema per me. Devo solo andare -> File -> WorspaceSettings -> Impostazioni di compilazione (passare qui a "Sistema di generazione legacy")inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


1
Frustrante, questo è tutto ciò che ha funzionato anche per me. Ho registrato il mio UDID, ho creato il mio profilo, ho un programma di sviluppo, è tutto collegato all'app che sto sviluppando, ho fatto tutto il possibile per essere in grado di eseguire direttamente sul dispositivo, fallendo sempre ogni volta - fino a quando non sono passato a eredità, ha funzionato per la prima volta ...
Concedi il

62

[modifica] Nota 2020: ero solito firmare manualmente questo progetto. Nei progetti in cui ho firmato automaticamente, non ho mai avuto questo problema. [/modificare]

Ho avuto lo stesso problema e ho passato ore a cercare una risposta, rimuovere i profili, pulire il progetto e così via.

Hai distribuito la tua app? Devi tornare al tuo profilo di sviluppatore, ma non in Generale sotto le impostazioni del progetto, ma in Impostazioni di costruzione .

In Firma , guarda l' identità della firma del codice .

Assicurati che sia il tuo debug sia la tua versione siano impostati come sviluppatore iOS e non come distribuzione iOS ; o il tuo profilo di provisioning per sviluppatori iOS, se non impostato sui valori automatici.

Lo stesso vale per il profilo di provisioning. Dovrebbe essere il tuo profilo di sviluppo e non il tuo profilo di distribuzione. inserisci qui la descrizione dell'immagine

Spero che questo possa aiutare i futuri sviluppatori in difficoltà.


Per chiarire (perché sono stato confuso da questa raccomandazione quando l'ho letto per la prima volta): questo cambiamento di rilascio a iOS Developer è solo durante il test direttamente su un dispositivo collegato; sarà necessario tornare alla distribuzione iOS quando compilato per il caricamento su testflight / app store, giusto?
ToolmakerSteve

1
In tutta onestà: no. Non ho dovuto farlo. Una possibile ragione di ciò potrebbe essere perché ho dovuto impostare nuovamente i certificati e possibilmente "installato" la distribuzione prima dello sviluppo. Sono solo io a indovinarlo, ma per rispondere alla tua domanda: li ho ancora configurati come Sviluppo e ho scelto Distribuzione durante l'archiviazione della build per il caricamento su App Store.
Rickard Elimää,

2
Questo mi ha davvero aiutato! <3
bobber205

Questo mi ha risolto. Stavo ricevendo il problema solo quando ho provato a creare un profilo dell'app, funzionava bene e l'ho eseguito normalmente. Avevo un account sviluppatore per il debug e uno di distribuzione per il rilascio. Questo onestamente mi sembra un bug XCode / Profiling.
James,

1
Ha funzionato ma avevo bisogno di un altro passo. Dato che avevo a che fare con i test su un iPhone collegato, non mi sono preoccupato di andare su App Store e impostare il mio certificato "iOS Distribution". Dal momento che stavo facendo lo sviluppo, ho pensato che avrei avuto solo bisogno di una configurazione del certificato "Sviluppo iOS" sull'App Store. Bene, non ha funzionato fino a quando non ho ottenuto sia un certificato "Sviluppo iOS" sia un certificato "Distribuzione iOS".
Stagr

41

Ho provato tutte le soluzioni di cui sopra.

Tuttavia, nel mio caso, dopo ore di mal di testa, è stato a causa del Progetto Test che non ha un account valido per il provisioning della firma. Dopo aver selezionato un team per il provisioning nel progetto di test con firma gestita automatica. Questo problema è andato via.


Come hai fatto?
diavolo rosso,

2
@ red-devil Quindi, dovrai aggiornare la gestione della firma in tutti i tuoi progetti target.
Chen,

Grazie amico, tutte le risposte di cui sopra non hanno risolto il mio problema. La tua risposta ha fatto la magia.
HungrySoul

26

Usa la cartella clean build (comando + maiusc + K) e l'app di ricostruzione può risolvere rapidamente questo problema. Tuttavia, il tempo di compilazione aumenterà da quando hai pulito la cartella di compilazione.


1
Questo ha funzionato per me (oltre all'eliminazione dei dati derivati) mentre i suggerimenti per utilizzare la modalità legacy non hanno funzionato.
Chris,

1
Si è scoperto che avevo una squadra diversa per il mio obiettivo normale rispetto al mio test, che stava causando problemi che solo l'eliminazione dei dati derivati ​​poteva ripristinare.
Chris,

1
La semplice pulizia della cartella di build (comando + maiusc + K) ha risolto il problema per me. Grazie @JeromeLi!
Freddo,

1
Ho provato prima la risposta accettata ("Modalità legacy") e ha funzionato per me. Quindi sono tornato a "New Build System" e ho provato questo suggerimento ("Clean build folder"). Funzionava anche lui. Quindi, a conti fatti, per me questa è la risposta migliore.
user1527225

1
Questo ha funzionato per me, grazie. (Ps: solo il mio iPhone 11 ha avuto questo problema, il mio iPhone Xs Max non ha questo problema e iPhone 11 è stata la prima volta a installare il mio progetto di test)
RateRebriduo

13

Quindi questo non sarà il caso di tutti, ma ho pensato di pubblicarlo qui in quanto non sembra esserci alcuna risposta in merito.

Nel mio caso stavo lavorando su un'app che era stata sviluppata in ReactNative, il mio problema era che sebbene la mia firma fosse corretta sul target dell'app principale, al target del test non era stata applicata alcuna firma.
Per qualche motivo React Native richiede che sia la destinazione dell'app che la destinazione del test siano firmate per installare l'app su un dispositivo.
Lo specifica nella documentazione ufficiale sulla creazione di un dispositivo, tuttavia è l'unica istanza che abbia mai visto in cui l'obiettivo di test è stato creato insieme all'app per qualsiasi cosa diversa dal test.

Per firmare l'obiettivo del test, vai alle impostazioni del tuo progetto aprendo il navigatore del progetto (⌘1) e seleziona il tuo progetto in alto.

All'interno dell'editor principale selezionare il target dell'app principale in Target (dovrebbe avere lo stesso nome del progetto) e assicurarsi che la firma sia corretta, quindi selezionare il target di test (probabilmente proprio sotto il target dell'app principale, dovrebbe essere lo stesso nome con Test aggiunto) e assicurarsi che sia firmato allo stesso modo.

Ricostruisci la tua app e ora dovrebbe installarsi correttamente.

Il merito di ciò va a Leo Lei, la sua risposta qui mi ha fatto risparmiare un sacco di mal di testa: https://stackoverflow.com/a/48657358/732844

Per inciso, se qualcuno sa perché la reazione nativa richiede che il target di test sia costruito insieme al target dell'app, potrebbero farmelo sapere? L'unica ragione a cui riesco a pensare è quella di semplificare l'interfaccia in modo da poter reagire in modo da creare una singola app ed eseguire sia l'esecuzione che i test senza la necessità di ricostruire, ma sto solo provando con quello.


2
Ciò ha risolto per me dove nient'altro ha fatto. Grazie per la pubblicazione.
Christian Chown,

2
Mille grazie per averlo sottolineato. Ho rinominato il progetto e cambiato i team. L'obiettivo del test aveva un vecchio nome di squadra. Faccio fatica da ore ormai. Mille grazie ancora
Alix,

Dopo ore di mal di testa, questo mi ha risolto. Molte grazie!
Johnson,

8

Nel mio caso, ecco i passaggi che risolvo i problemi:

  1. Vai a questa cartella: ~/Library/MobileDevice/Provisioning Profiles/
  2. Rimuovi tutto il profilo di provisioning
  3. Nel menu Xcode 10> Prodotto> Pulisci cartella build
  4. Nel menu Xcode 10> Xcode> Preferenze> Account> Scarica profili manuali
  5. Nel menu Xcode 10> Prodotto> Crea / Archivia

Il motivo per eseguire i passaggi precedenti è rimuovere i vecchi profili di provisioning che hanno incasinato il processo di creazione.


6

Per il nostro team, nulla ha aiutato. Abbiamo trascorso un paio di giorni e provato ogni passaggio menzionato sopra nelle risposte e nei commenti. Abbiamo provato con XCode 10 e persino XCode 9.2 su un'app, che è presente nell'App Store da molti anni.

Il problema è iniziato dopo l'aggiornamento a MacOS Mojave. Sfortunatamente, tornare a HighSierra non ha aiutato allora.

Almeno siamo stati di nuovo in grado di spedire in App Store dopo aver creato un nuovo certificato e profilo di provisioning. Ma non siamo ancora in grado di testare la nostra App in modalità di rilascio sul dispositivo reale, che è necessario per testare gli acquisti InApp.

In breve: l'archiviazione e l'invio funzionano bene, non in esecuzione su un dispositivo reale!

Diversi sviluppatori, diversi dispositivi, macbook, versioni XCode ....

Alla fine abbiamo dovuto modificare l'AppID per poter nuovamente testare su dispositivo reale.

Quindi eseguiamo due diversi progetti ora: uno per la spedizione a TestFlight / AppStore con l'AppID reale e uno per scopi di sviluppo con un altro AppID.

Anche se questo accade solo su UNA particolare app della nostra azienda e non su tutte le altre, ci aspettiamo di incontrare problemi simili in futuro poiché le cose peggioreranno con gli strumenti di sviluppo di Apple ...


5

Ho riscontrato questo problema in Xcode 10.3 dopo essere passato al target del test dell'unità XCTest e quindi al target del tempo di esecuzione del progetto.

Si è scoperto che avevo selezionato diverse squadre nel mio profilo di provisioning per ciascun target.

Per risolverlo :

  • Pulisci cartella build

  • Assicurati che tutti i possibili bersagli stiano usando la stessa squadra. Vedi la firma del profilo nella scheda generale.

  • Se non si utilizza lo stesso team per tutti i target, pulire prima di passare a un target build con

    squadra diversa selezionata.


5

Assicurati che il profilo di provisioning provenga dallo stesso team sia nei test target che target.


1
Grazie! Era il problema che avevo quando lavoravo con React Native
Yannickv il

4

Nel mio caso, la data-ora del dispositivo è stata impostata su una data futura. La modifica dell'impostazione della data su "automatica" ha risolto il problema.


3

Ero alle prese con lo stesso problema e la soluzione nel mio caso era quella di accedere agli account degli sviluppatori. Dopo l'aggiornamento a Xcode 10 tutti gli account sono stati disconnessi.

Utilizzare il menu "Xcode -> Preferenze ... -> Account" e assicurarsi che tutti gli account utilizzati siano connessi in modo che i profili di provisioning siano accessibili.


2

Avevo seguito tutti i passaggi precedenti ma alla fine non funziona. Sono stato creato Target duplicato e funziona benissimo. Non ho idea di cosa ci sia che non va, forse un problema di memoria cache

inserisci qui la descrizione dell'immagine


1

Hai forse cambiato il tuo dispositivo di sviluppo? Mi è successo quando ho comprato un nuovo iPhone e gli ho dato lo stesso nome con il mio dispositivo precedente. Una build pulita ha comunque risolto il problema.


1

Ci vuole molto tempo e abbiamo fatto tutte le soluzioni di cui sopra e non hanno funzionato affatto, quindi il nostro team ha deciso di rimuovere i Podfile ed eseguirli di pod installnuovo. infine, il nostro OTA caricato OTA installato sul dispositivo dell'utente. soluzione migliore

  1. pulito project menu > Product > Clean Build Folder e/Users/{you user name}/Library/Developer/Xcode/DerivedData

  2. vai alla directory del tuo progetto e rimuovi Podfile.lock, Podscartella,pod_***.framework

  3. corri di pod installnuovo

Fatto


1

Ho avuto il caso in cui la mia app si sarebbe distribuita sul mio iPhone ma non sul mio orologio. La distribuzione sull'orologio darebbe il "Non è stato trovato un profilo di provisioning valido per questo eseguibile". errore. Questo è con XCode versione 11.2.1 e utilizzando l'account sviluppatore gratuito.

Ecco cosa ho fatto per installarlo sul mio orologio:

1) Ho eliminato il mio profilo di provisioning in XCode. L'ho fatto andando su Window -> Dispositivi e simulatori. Quindi fare clic con il tasto destro sul nome dell'iPhone e selezionare "Mostra profili di provisioning". Da lì ho potuto eliminare il file

2) Nella schermata Dispositivi e simulatori ho anche eliminato la mia app dalla sezione "App installate".

3) Ha fatto una "cartella build pulita" (Prodotto -> Cartella build pulita)

4) Nella sezione "Impostazioni build" -> "Firma" mi sono assicurato che ogni target (iPhone, Test e Watch) avesse le stesse impostazioni (team di sviluppo, stile di firma del codice, profilo di provisioning impostato su automatico, ecc.).

costruire i dettagli delle impostazioni

5) Assicurarsi che la directory ~ / Library / MobileDevice / Provisioning Profiles fosse vuota.

6) Telefono scollegato dal computer

7) Riavvia il computer, il telefono e l'orologio

8) Ricollegare il telefono al computer e seguire le istruzioni "Trust this machine" sul telefono e guardare.

9) Ho eseguito l'app. Ha funzionato!


Ho avuto lo stesso problema con il mio orologio Apple e questo mi ha aiutato. Ho anche disaccoppiato e accoppiato di nuovo il mio orologio Apple da qualche parte nel processo. Grazie!
Radu Vlad,

1

Oggi ho avuto lo stesso errore durante l'installazione di un'app sul mio dispositivo. Il problema si è verificato dopo l'aggiornamento al nuovo xCode 11.4.

Cosa ho fatto per risolvere il problema:

  • Dispositivo non accoppiato (Xcode> Finestra> Dispositivi e simulatori> Dispositivo clic sinistro per annullare l'abbinamento del dispositivo.
  • Riavvia iPhone
  • Clean Build Folder (Xcode> Prodotto> Clean Build Folder)
  • Cancella dati derivati ​​(in ../library/Developer/Xcode/DerivedData)
  • Pulisci di nuovo la cartella di build (Xcode> Prodotto> Pulisci cartella di build)
  • Crea app sul dispositivo.

Nel mio caso, ho risolto il problema usando questi passaggi senza disaccoppiare il dispositivo.
Muhammad Yusuf,

0

Nel mio caso, dove nient'altro ha aiutato, ho fatto quanto segue:

  1. cambiare l'AppID con uno nuovo
  2. XCode ha generato automaticamente nuovi profili di provisioning
  3. esegui l'app sul dispositivo reale -> ora ha funzionato
  4. ripristinare l'AppID sull'ID originale
  5. lavori

Prima di questo ho provato ogni passaggio che è stato menzionato qui. Ma solo questo ha aiutato.


0

Per me anche tu il certificato di distribuzione e il profilo di provisioning erano disponibili per Xcode, selezionando Gestione automatica delle firme durante il processo di distribuzione ha fatto fallire. Ho fatto quanto segue. Come accennato in precedenza, ho creato un nuovo certificato di distribuzione e profilo di provisioning e, durante il processo di distribuzione, ho selezionato manualmente il profilo di certificato e provisioning e Voilaaaa. Mi sono anche assicurato di utilizzare l'ultima versione 10.1.


0

Sembra che Apple abbia corretto questo errore nella versione Xcode 10.2 beta 2.

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_beta_2_release_notes

Problemi risolti relativi alla firma e alla distribuzione

Quando si crea un archivio di un'app macOS e si utilizza un certificato di firma dell'ID sviluppatore, Xcode include un timestamp sicuro nella firma dell'archivio. Di conseguenza, ora puoi inviare un'app archiviata al servizio notarile di Apple con xcrun altool senza prima dover firmare nuovamente con un timestamp. (44952627)

Quando si crea un archivio di un'app macOS, Xcode non inserisce più il diritto com.apple.security.get-task-allow nella firma dell'app. Di conseguenza, ora puoi inviare un'app archiviata al servizio notarile di Apple usando xcrun altool senza prima dover rimuovere questo diritto. (44952574)

Risolto il problema che causava al flusso di lavoro di distribuzione di riportare informazioni inesatte o mancanti sul certificato di firma, sul profilo di provisioning e sui diritti utilizzati durante l'esportazione o il caricamento di un'app. (45761196)

Risolto il problema per cui i file .ipa assottigliati non venivano firmati quando venivano esportati dall'Organizer. (45761101)

La versione Xcode 10.2 beta 2 può essere scaricata qui: https://developer.apple.com/download/


3
è fantastico. ma se creerai app per l'appstore, non ti consentirà di caricare l'ipa se stai utilizzando un software beta
Yasha,


0

Dopo mi stanco più di una soluzione, ho trovato quello che il suo farla funzionare senza alcun problema per me, il suo deliberato da Vai developer.apple.compoi accountpoi Certificates, identifiers & profilese clicco su Alllink sottoDevices e quindi aggiungere un nuovo dispositivo.

quindi è necessario impostare il nome del dispositivo, e quindi, e dopo salvarlo. Vai su xcode e pulisci la cache, costruisci e tutto funziona perfettamente.

Nota 1: assicurarsi che la propria squadra sia impostata sulla verità.

Nota 2: Puoi ottenere uuid collegando il dispositivo al tuo dispositivo mac e facendo clic su iTunes e premendo sull'etichetta di sicurezza, vedrai UUID.

Anche questa risposta è utile.


0

Ho provato tutte le risposte sopra e non ho avuto fortuna. Dopo di che riavvio il mio iPhone e il problema sembra scomparso. So che è così stupido ma ha funzionato. Le risposte precedenti probabilmente risolvono il problema, ma in caso contrario tentano di riavviare il dispositivo iOS.


0

Accertati di:

1) Avere un profilo di provisioning registrato per il dispositivo.

2) Il dispositivo deve essere aggiunto al profilo di sviluppo e aggiornato.

Se i problemi persistono, controlla le impostazioni di creazione del tuo target.

Accertati di:

1) CODE_SIGNING_REQUIREDin User-Definedè impostato su YES.

inserisci qui la descrizione dell'immagine

2) Verificare che le Signingopzioni siano corrette. Se il problema persiste, passare alle impostazioni manuali anziché automaticamente.


0

Incontrato stesso problema, abbiamo avuto più configurazioni di progetto Xcode, diciamo di let Debug-Staging, Debug-Production. Abbiamo quindi unificato quelli e utilizzato solo una configurazioneDebug . Ma quello vecchio (non più esistente) era bloccato nello schema per la fase di esecuzione, quindi una volta che hai provato a eseguire, Xcode ti ha mostrato questo messaggio. Ciò ha senso in quanto i profili di provisioning vengono impostati nelle impostazioni di compilazione in base alla configurazione.

Quindi lo schema di esecuzione sembrava così:

Schema target errato

Mentre le configurazioni del progetto sono state impostate in questo modo.

Configurazioni del progetto

Cambiare schema per usare la configurazione che è ancora disponibile nel progetto è ciò che ha risolto questo problema per me.


0

Ho avuto lo stesso problema (XCode 11) e niente ha funzionato con quello che è stato scritto qui.

Il mio problema era che avevo iOS Beta (13.3) sul mio telefono. Dopo aver ripristinato che tutto ha funzionato di nuovo bene.


Idea: forse il dispositivo memorizza nella cache anche alcune informazioni sul profilo di provisioning, quindi un ripristino di fabbrica del telefono potrebbe risolverlo?


0

Per me ha funzionato per eliminare una capacità e quindi aggiungerla nuovamente.

Scheda Funzionalità


0

Ho fatto quanto segue:

  1. Disconnesso il dispositivo in cui l'app non veniva installata
  2. Connesso a un altro dispositivo <È installato su questo secondo dispositivo
  3. Dopo qualche tempo collegato il primo dispositivo e ha funzionato!

Questo è molto strano ma ha funzionato per me, potrebbe funzionare per gli altri e salvare la frustrazione.


0

Alla fine, ho capito cosa sta succedendo ... mi ci vogliono quasi 2 ore

Il mio caso è che la data del mio telefono non è corretta. Ho dimenticato di aver cambiato la data del mio telefono. Immagino che questo faccia scadere tutti i miei profili di provisioning ...

Quindi se hai provato tutte quelle risposte ma non funziona nulla. Vai su IMPOSTAZIONI, controlla la data del tuo telefono.

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.