Il profilo non corrisponde al valore del file delle autorizzazioni per l'autorizzazione dell'identificatore dell'applicazione


92

Sto provando a caricare un'app nell'app store e ricevo questo errore nella pagina che contiene i certificati. Per quanto ne so ho cambiato campo in modo che si siano abbinati, ma mi manca qualcosa.

questo è ciò che si apre

Qualsiasi aiuto sarebbe molto apprezzato.

info.plist


1
Mostra il tuo entitlements.plistfile.
Imad Ali,

Forse è perché non l'ho mai cercato prima, ma gli unici plists che vedo dicono informazioni, ma ecco che è la seconda immagine.
Paul Raymond

dice che non posso più postare link, sto per prendere un aereo per Chicago se qualcuno se ne esce con qualcosa
Paul Raymond

Risposte:


208

Non sono sicuro del motivo per cui questo lo ha risolto, ma sono andato nella scheda Capacità del mio obiettivo, ho attivato iCloud, ho provato a creare un archivio, non è riuscito, ho disattivato di nuovo iCloud, ho provato a fare una build dell'archivio ed è riuscito, e dopodiché è stato di nuovo in grado di risolvere automaticamente i certificati.


3
Non so perché ha funzionato, ma ha funzionato, il supporto Apple è stato meno utile.
Paul Raymond,

13
Grazie per questo: dopo l'attivazione / disattivazione ha creato un plist .entitlements vuoto accanto a xcodeproj. Sembra che questo sia ciò che il processo di invio sta cercando. Probabilmente solo un problema in Xcode 9 per le app esistenti che non richiedono alcun diritto / funzionalità.
Andrew Wood,

3
Anch'io. Progetto antico. Molte grazie per il suggerimento di attivare o disattivare una funzionalità, ora c'è un .entitlements vuoto che è accettato. Presentazione di un bug con Apple.
RickJansen

6
Sculacciata un'intera serata su questo bs. Ho dovuto attivare e disattivare, il che ha creato il file dei diritti vuoto, quindi ho dovuto puntare l'impostazione di build "Autorizzazioni per la firma del codice" su quel file vuoto.
Adam Waite,

2
In Xcode 10.0beta5 questo sta ancora accadendo. Per me, era dovuto alla modifica del nome del progetto dopo la creazione dei diritti. L'attivazione e la disattivazione di iCloud ha rinominato il file dei diritti e aggiornato il suo nome nelle impostazioni di build. Il contenuto del file era identico. Sembra che l'uploader si preoccupi del nome del file dei diritti indipendentemente dal nome del file delle impostazioni di build.
Troy

41

Fare clic con il tasto destro sul Finder -> Vai alla cartella ...

~/Library/MobileDevice/Provisioning

Per Xcode 11

~/Library/MobileDevice/Provisioning Profiles/

Elimina tutti i profili di provisioning, fatto.


1
nel mio caso la cartella è "~ / Library / MobileDevice / Provisioning Profiles"
LightMan

D'accordo, questa è la risposta corretta, solo con Xcode 11 il percorso è~/Library/MobileDevice/Provisioning Profiles/
Marius Kažemėkaitis

Perché questo risolve il problema? Cosa abbiamo appena cancellato? Questo ha effetti collaterali?
Markdon

Stai eliminando i profili di provisioning aggiunti automaticamente da Xcode o manualmente aprendo un profilo da developer.apple.com. Se non vuoi perdere altri profili, puoi usare qualcosa come ... grep -ir YOUR_APP_ID ~ / Library / MobileDevice / Provisioning \ Profiles; Per mostrare quali profili corrispondono. Basta eliminarli e eseguirà lo stesso compito.
Chris Douglass

33

L'app che hai creato ha un application-identifiervalore errato , per quello che si aspetta il profilo di provisioning. Il certificato per appID com.example.foo per il team 2ABCDEFG si aspetterà l'identificatore dell'applicazione: 2ABCDEFG.com.example.foo, la tua app ha dichiarato che il suo ID app era com.example.foo, ma l'identificatore dell'applicazione non corrispondeva , o stai usando il prefisso del team sbagliato o hai il bundleID non configurato correttamente.

Nel mio caso, sto usando schemi di compilazione per permettermi di creare un'app prod e un'app qa. com.example.foo per prod e com.example.foo.qa per QA. Avevo impostato il mio bundleIdentifier in Info.plist su $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX), che funziona benissimo nel simulatore e sul dispositivo per avere app diverse, tuttavia, quando l'app genera il suo identificativo dell'applicazione durante la fase di archiviazione, non deve leggere il bundleIdentifier generato da Info.plist.

Per rimediare alla situazione, ho modificato FooProject.xcodeproj / project.pbxproj (con un editor di testo) per modificare il mio QA buildSettings PRODUCT_BUNDLE_IDENTIFIER in com.example.foo.qa

Puoi vedere le domande e risposte tecniche di Apple per vedere la loro immersione approfondita per risolvere questo problema. Dopo aver eseguito i diritti di codice sulla tua app esportata e aver visto con quale identificatore di applicazione la tua app è stata appena creata, dovrebbe essere abbastanza veloce per capire cosa stai facendo di sbagliato. https://developer.apple.com/library/content/qa/qa1879/_index.html Non ho trovato quella pagina nella mia ricerca su Google, perché in realtà non usano la frase del messaggio di errore o chiamano l'applicazione -identificatore con il suo nome completo, ma dì invece ID app.

Inoltre, la soluzione a questo problema non è quella di generare un nuovo profilo di provisioning che abbia il diritto all'identificativo dell'applicazione, ma ha tale diritto, tuttavia, il valore nel profilo di provisioning e la tua app devono corrispondere.


2
Grazie! Sono stato in grado di risolvere il problema modificando le mie impostazioni di build, nella confezione, per utilizzare la mia variabile personalizzata per il suffisso nell'identificatore del pacchetto di prodotti. es. com.mycompany.myapp $ (BUNDLE_ID_SUFFIX) e questo lo ha risolto. Quindi non ho dovuto modificare manualmente il file di progetto ed ero in grado di mantenere facilmente ID bundle diversi per ambiente.
n8tr

Uno dei motivi per cui è possibile che l'identificatore dell'applicazione non corrisponda è che non sono stati scaricati tutti i profili di provisioning. Il tuo archivio viene creato con il profilo jolly se manca il profilo con l'ID app esatto, il che porta a una mancata corrispondenza nella fase di esportazione.
diidu

Questo ha funzionato per me. Stavo creando un'app Ionic e mi sono reso conto di aver provato su un account diverso. Ho usato com.foo.testName e l'ho modificato di nuovo durante la creazione con l'account corretto. Sembra che com.foo.testName fosse ancora nel file
pbxproj

Grazie mille, questo era esattamente ciò che stava bloccando la mia convalida e la spiegazione è molto chiara!
MDH

@ n8tr Dopo quasi una settimana di mal di testa e frustrazione, il tuo commento mi ha salvato. Grazie.
Behdad

9

Forse mancava il file {project} .entitlements. Fare ciò che @samkass menzionato genererà automaticamente il file e funzionerà. Quindi, in pratica, vai alla scheda funzionalità, abilita qualsiasi cosa e disabilitala.


Questo è sciocco ma ha funzionato per me per diversi vecchi progetti che stavo aggiornando.
aspro

7

Modificando l'attivazione di iCloud, la creazione e la disabilitazione di iCloud, si è eliminato l'errore dicendo che:

Il profilo non corrisponde ai valori del file dei diritti per i diritti identificatore dell'applicazione e gruppi di accesso portachiavi.


3

In Xcode 11, ciò potrebbe accadere quando un file .entitlement non è presente per il tuo progetto. La soluzione sarebbe aggiungere qualsiasi capacità casuale facendo clic su "+ Capacità" in "Firma e funzionalità" (che porta alla creazione di un file .entitlement) e quindi rimuovere la capacità. Ciò ti consentirà anche di fornire automaticamente un certificato.


2

Controlla le funzionalità dell'applicazione richieste per la tua applicazione come acquisto in app, notifica push, audio Inter App, kit Siri ecc.

Questa è l'unica causa di questo tipo di errore.

Assicurati che nel tuo ID app siano attivi i flag sopra.

Il più delle volte accade quando non hai configurato la notifica push, l'acquisto in app nell'ID app di sviluppo.


Non ho abilitato nulla. È solo davvero frustrante.
Paul Raymond,

la tua app ha qualche funzione che ho menzionato sopra
Tech

Allegherò uno screenshot in seguito, ma non ci sono notifiche push o acquisti in app per l'app.
Paul Raymond,

di che cosa vuoi esattamente una schermata? sotto plist non menziona i diritti.
Paul Raymond

2

Sono entrato nella scheda Capacità del mio obiettivo, ho attivato Condivisione portachiavi e inizia a funzionare


2

Per me, il trucco era

  1. aggiungere / rimuovere una capacità per il target (nel mio caso un Widget);
  2. assicurati che il file dei diritti creato sia elencato nelle impostazioni di build;
  3. e per aggiungere la chiave "APS Environemnt" con valore "development" al file entitlemenets.

1

In Xcode 10, ho funzionato spostando il file dei diritti nella cartella corretta in Project Navigator. Non avevo il file dei diritti, ma sono riuscito a ottenerne uno attivando le funzionalità nella scheda delle capacità.

inserisci qui la descrizione dell'immagine


1

Ho ricevuto lo stesso errore e nessuna delle soluzioni sopra ha risolto il problema nel mio caso.

Quello che ha funzionato per me è stato modificare l'impostazione "Può essere debug" nel file "Entitlements.plist" da "NO" a "YES".


1

Nel mio caso il problema era il seguente: il profilo di provisioning utilizzato per la fase di creazione è stato creato per un ID app diverso dal profilo di provisioning utilizzato per la fase di esportazione.

Quindi assicurati di utilizzare lo stesso profilo di provisioning per la fase di creazione ed esportazione.


Perché volevo evidenziare che questo errore può verificarsi a causa di diversi profili di provisioning nella fase di creazione ed esportazione. Il messaggio di errore non è utile per trovare la causa principale in questo caso. Per quanto riguarda il motivo per cui la risposta è in ritardo, questo errore non è vincolato a un periodo di tempo specifico. Quindi è successo 1 anno fa e succede lo stesso ora. La risposta accettata non ha funzionato nel mio caso.
Alexey Komov

1

Quello che ha funzionato per me è che ho creato l'archivio in XCode 11 e ho caricato Xcode 12 beta.


0

Funzionalità di controllo incrociato nell'app con le opzioni abilitate per l'ID app nel tuo account sviluppatore.


È un'app gratuita e non ho abilitato nulla, ed è così frustrante. Si installa perfettamente sul mio dispositivo, semplicemente non so dove guardare.
Paul Raymond,

puoi condividere screenshot di entrambi?
KavyaKavita

di cosa vuoi uno screenshot?
Paul Raymond

screenshot della sezione delle funzionalità e della configurazione dell'ID app su un account sviluppatore
KavyaKavita

0

Ho provato alcune opzioni elencate nelle risposte qui, ma nessuna ha aiutato, tuttavia, disattivando e attivando la casella di controllo "Gestisci automaticamente la firma" il problema è stato risolto.


0

TL; DR: controlla il tuo ID app e assicurati che i servizi corrispondano a ciò che è nel tuo target.


Quello che mi è successo è stato che ho lasciato che Xcode 10.1 mi aiutasse a creare un ID app, dopodiché mi sono imbattuto nel problema come descritto qui. (Ho selezionato l'ID app whildcard quando ho creato l'app in iTunesConnect, quindi non mi sono nemmeno reso conto che fosse stato fatto.) Quando ho aperto il portale per sviluppatori iOS, il nuovo ID app ha Game Center e In App Purchase abilitati automaticamente.

Dato che non sono riuscito ad abilitare Game Center nel tuo Target -> Capabilities, ho abilitato l'acquisto in app, quindi la mia app potrebbe essere firmata e caricata.


0

Quando abbiamo affrontato lo stesso problema, abbiamo provato tutte le cose sopra ma nessuna ha funzionato.

Ciò che ha funzionato per noi è stato modificare l'identificatore del bundle in modo che non fosse identico a quello precedente, ad esempio "com.name.App" in "com.name.App2"; lascia che xcode tenti di recuperare / creare il profilo di provisioning e poi riprovare a quello originale.

Ho avuto questa idea da questo thread sui forum degli sviluppatori di Apple: https://forums.developer.apple.com/thread/114539


0

Mi sono imbattuto in questa pagina di recente dopo aver provato a creare un target duplicato: nessuno dei suggerimenti funzionava per me. Ulteriori indagini e una certa quantità di tiri di capelli alla fine mi hanno portato a setacciare le impostazioni di costruzione della mia app per cercare di capire cosa c'era che non andava.

Si è scoperto che il mio progetto puntava ancora al file dei diritti del target ORIGINALE, invece di averne uno proprio. Per risolvere questo problema, sono passato al file dei diritti originale nel Finder (ad esempio $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ), creato una copia all'interno della stessa cartella e poi l'ho rinominato (ad esempio NewTargetName.entitlements).

Quindi, ho aperto il mio nuovo file di diritti e ho modificato il campo dell'identificativo dell'applicazione in modo che corrisponda alla fine dell'identificatore del bundle del mio nuovo target (ad esempio ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ).

Infine, ho aggiornato il campo "Code Signing Entitlements" nelle impostazioni di build al percorso del mio file di entitlements (per me, questo era qualcosa sulla falsariga di $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ).

Sono tornato alla scheda Firma e funzionalità ed ecco, il problema è stato risolto. Spero che qualcuno là fuori lo trovi utile.


0

Vai alla scheda Informazioni di Xcode e cambia il campo dell'identificatore del pacchetto : dopo aver cambiato il nome dell'app, non è cambiato anche se ho cambiato l'identificatore del pacchetto nella scheda Generale. Le correzioni di cui sopra non hanno funzionato per me, ma questa ha funzionato immediatamente.


0

Ho avuto questo problema con un'app nuova di zecca, in Xcode 12 beta 3 (l' invio delle app è iniziato oggi ).

Xcode aveva "Gestisci automaticamente l'accesso". Tuttavia, l'ID squadra visualizzato nel "Certificato di firma" non corrispondeva all'ID squadra visualizzato nel sito Web iTunes Connect. Questa era la causa principale che impediva il caricamento dell'app.

Come l'ho risolto:

  1. Ho creato manualmente un profilo di provisioning per la distribuzione nell'App Store
  2. In Xcode, ho cliccato su "Scarica profili manuali" in Preferenze -> Account
  3. Quindi, ho disattivato "Gestisci automaticamente la firma".
  4. Dopo aver selezionato il profilo di provisioning nel menu a discesa, l'ID team corretto è stato visualizzato in "Certificato di firma"

0

Ho riscontrato lo stesso problema durante la configurazione di una pipeline Gitlab che esegue exportArchive cmd e carica su AppStore. Sono stato in grado di farlo funzionare modificando DEVELOPMENT_TEAM nelle impostazioni di build con lo stesso team selezionato in Firma e certificati.

Perché in precedenza era impostato su vuoto che utilizzava per impostazione predefinita un altro ID DEV TEAM che non era corretto e non corrispondeva e si lamentava che "application-identifier" = 12331232.com.bannana.apples.peach non corrispondeva. Il che mi ha portato a impostare il DEV TEAM corretto e ha funzionato.

Xcode ver: versione 11.3.1

Spero che questo aiuti qualcuno.


0

Il nostro setup

Target multipli:

  • sotto-app
  • orologio
  • clip dell'app
  • widget di oggi

... e usa iCloud.

L'attivazione e la disattivazione di iCloud non era un'opzione per noi. Lo usiamo già in produzione e piuttosto non scherzarci ... Ho ricevuto il messaggio della domanda originale e anche questa variazione ad un certo punto:

Il profilo non corrisponde ai valori del file dei diritti per i diritti identificatore dell'applicazione e gruppi di accesso portachiavi.

Soluzione

Suggerito da altre risposte qui, ci siamo assicurati che tutti i target avessero un .entitlementsfile. Se l'obiettivo non ne aveva, ne abbiamo creato uno vuoto in questo modo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>

... e ha puntato la sua destinazione Code Signing Entitlementnel file Build Settingsvuoto .entitlements.

Risolto!


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.