Le profil ne correspond pas à la valeur du fichier de droits pour le droit de l'identificateur d'application

92

J'essaie de télécharger une application sur l'App Store et j'obtiens cette erreur sur la page contenant les certificats. Pour autant que je sache, j'ai changé le champ pour qu'ils correspondent, mais il me manque quelque chose.

c'est ce qui apparaît

Toute aide serait grandement appréciée.

info.plist

Paul Raymond
la source
1
Montrez votre entitlements.plistfichier.
Imad Ali du
C'est peut-être parce que je ne l'ai jamais cherché auparavant, mais les seuls fichiers que je vois disent des informations, mais voici que c'est la 2ème image.
Paul Raymond
il dit que je ne peux plus poster de liens, je suis sur le point de prendre un avion pour Chicago si quelqu'un trouve quelque chose
Paul Raymond

Réponses:

208

Je ne sais pas pourquoi cela a résolu le problème, mais je suis allé dans l'onglet Capacités de ma cible, j'ai activé iCloud, j'ai essayé de créer une archive, cela a échoué, j'ai à nouveau désactivé iCloud, essayé de faire une construction d'archive et cela a réussi, et après cela, il a pu à nouveau résoudre automatiquement les certificats.

Samkass
la source
3
Je ne sais pas pourquoi cela a fonctionné, mais cela a fonctionné, le support Apple était moins que utile.
Paul Raymond
13
Merci pour cela - après avoir activé / désactivé, il a créé un plist .entitlements vide à côté du xcodeproj. On dirait que c'est ce que recherche le processus de soumission. Probablement un problème dans Xcode 9 pour les applications existantes qui ne nécessitent aucun droit / capacité.
Andrew Wood du
3
Pareil ici. Projet ancien. Merci beaucoup pour la suggestion de basculer une capacité, maintenant il y a un .entitlements vide qui est accepté. Signaler un bug avec Apple.
RickJansen
6
Fessée toute une soirée sur ce bs. J'ai dû activer et désactiver, ce qui a créé le fichier de droits vierge, puis j'ai dû pointer mon paramètre de construction «Droits de signature de code» vers ce fichier vide.
Adam Waite
2
Dans Xcode 10.0beta5, cela se produit toujours. Pour moi, cela était dû au changement de nom du projet après la création des droits. Activer puis désactiver iCloud a renommé le fichier de droits et mis à jour son nom dans les paramètres de construction. Le contenu du fichier était identique. Il semble que le téléchargeur se soucie du nom du fichier de droits quel que soit le nom du fichier des paramètres de construction.
Troy le
42

Cliquez avec le bouton droit sur Finder -> Aller au dossier ...

~/Library/MobileDevice/Provisioning

Pour Xcode 11

~/Library/MobileDevice/Provisioning Profiles/

Supprimez tous les profils d'approvisionnement, c'est fait.

Nidhi
la source
1
dans mon cas, le dossier est "~ / Library / MobileDevice / Provisioning Profiles"
LightMan
D'accord, c'est la bonne réponse, juste avec Xcode 11, le chemin est~/Library/MobileDevice/Provisioning Profiles/
Marius Kažemėkaitis
Pourquoi cela résout-il le problème? Que venons-nous de supprimer? Cela a-t-il des effets secondaires?
markdon
Vous supprimez les profils d'approvisionnement ajoutés automatiquement par Xcode ou manuellement en ouvrant un profil à partir de developer.apple.com. Si vous ne voulez pas perdre d'autres profils, vous pouvez utiliser quelque chose comme ... grep -ir VOTRE_ID_APP ~ / Library / MobileDevice / Provisioning \ Profiles; Pour montrer quels profils correspondent. Supprimez-les simplement et cela accomplira la même tâche.
Chris Douglass
Cela corrige le problème, mais vous devez d'abord accéder à Xcode et décochez Gérer automatiquement la signature, puis procédez comme suit, puis revérifiez la signature automatique et tout va bien. Corrigé pour moi. Voir la description complète ici :: ottorinobruni.com
...
33

L'application que vous avez créée a une application-identifiervaleur incorrecte , pour ce que le profil d'approvisionnement attend. Le certificat de l'appID com.example.foo pour l'équipe 2ABCDEFG attendra l'identifiant de l'application: 2ABCDEFG.com.example.foo, votre application a déclaré que son appID était com.example.foo, mais l'identifiant de l'application ne correspondait pas , soit vous utilisez le mauvais préfixe d'équipe, soit vous avez le bundleID mal configuré.

Dans mon cas, j'utilise des schémas de construction pour me permettre de créer une application prod et une application qa. com.example.foo pour prod et com.example.foo.qa pour QA. J'avais défini mon bundleIdentifier dans Info.plist sur $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX), qui fonctionne très bien dans le simulateur et sur l'appareil pour avoir différentes applications, cependant, lorsque l'application génère son identifiant d'application pendant la phase d'archivage, il ne doit pas lire le bundleIdentifier généré par Info.plist.

Pour remédier à la situation, j'ai modifié FooProject.xcodeproj / project.pbxproj (avec un éditeur de texte) pour changer mes buildSettings QA PRODUCT_BUNDLE_IDENTIFIER en com.example.foo.qa

Vous pouvez consulter les questions et réponses techniques d'Apple pour voir leur analyse approfondie de la résolution de ce problème. Une fois que vous avez exécuté les droits de signature de code sur votre application exportée et que vous voyez avec quel identifiant d'application votre application vient d'être créée, il devrait être assez rapide de réaliser ce que vous faites de mal. https://developer.apple.com/library/content/qa/qa1879/_index.html Je n'ai pas trouvé cette page dans ma recherche Google, car ils n'utilisent pas réellement l'expression du message d'erreur ou n'appellent pas l'application -identifiant par son nom complet, mais à la place, dites App ID.

En outre, la solution à ce problème n'est pas de générer un nouveau profil de provisionnement qui a le droit d'identifiant d'application, il a ce droit, cependant, la valeur dans le profil de provisionnement, et votre application doit correspondre.

Peter Dietz
la source
2
Merci! J'ai pu corriger en modifiant mes paramètres de construction, sous l'empaquetage, pour utiliser ma var personnalisée pour le suffixe dans l'identifiant de l'offre groupée. par exemple com.mycompany.myapp $ (BUNDLE_ID_SUFFIX) et cela l'a résolu. Je n'ai donc pas eu à modifier le fichier de projet manuellement et j'ai pu facilement gérer différents identifiants de bundle par environnement.
n8tr
Une des raisons pour lesquelles vous pouvez avoir une incohérence d'identifiant d'application est que vous n'avez pas tous les profils d'approvisionnement téléchargés. Votre archive est créée avec un profil générique si le profil avec l'identifiant exact de l'application est manquant, ce qui entraîne une incompatibilité lors de la phase d'exportation.
diidu
Cela a fonctionné pour moi. Je construisais une application Ionic et j'ai réalisé que j'avais testé sur un autre compte. J'ai utilisé com.foo.testName et l'ai changé lors de la création avec le bon compte. Il semble que com.foo.testName était toujours dans le fichier pbxproj
Dewald Els
Merci beaucoup, c'est exactement ce qui bloquait ma validation, et l'explication est très claire!
MDH
@ n8tr Après presque une semaine de maux de tête et de frustration, votre commentaire m'a sauvé. Merci.
Behdad
9

Peut-être que le fichier {project} .entitlements était manquant. Faire ce que @samkass a mentionné générera automatiquement le fichier et cela fonctionnera. Donc, fondamentalement, allez dans l'onglet des capacités, activez quoi que ce soit et désactivez-le.

Mrhangz
la source
C'est idiot mais cela a fonctionné pour moi pour plusieurs projets plus anciens que je mettais à jour.
aspro
8

Changer le commutateur iCloud pour activer, créer et désactiver iCloud a éliminé l'erreur en disant que:

Le profil ne correspond pas aux valeurs du fichier de droits pour les droits d'identifiant d'application et de groupes d'accès au trousseau.

Le coucher du soleil
la source
Bien sûr, ce serait la solution! Pourquoi n'ai-je pas pensé à cette chose complètement non évidente à essayer. Merci Apple.
Jonathan Plackett il y a
3

Dans Xcode 11, cela peut se produire lorsqu'un fichier .entitlement n'est pas présent pour votre projet. La solution serait d'ajouter n'importe quelle capacité aléatoire en cliquant sur «+ Capability» sous «Signing & Capabilities» (ce qui conduit à la création d'un fichier .entitlement) puis en supprimant la capacité. Cela vous permettra également de provisionner automatiquement un certificat.

Bijoy Thangaraj
la source
2

Veuillez vérifier les fonctionnalités de votre application requises pour votre application, telles que l' achat intégré, la notification push, l'audio Inter App, le kit Siri, etc.

C'est la seule cause de ce type d'erreur.

Assurez-vous que dans votre identifiant d'application, les indicateurs ci-dessus doivent être activés.

La plupart du temps, cela se produit lorsque vous n'avez pas configuré la notification push, l'achat In App dans votre ID d'application de développement.

Technologie
la source
Je n'ai rien activé. C'est vraiment frustrant.
Paul Raymond du
votre application a-t-elle une fonctionnalité que je mentionne ci
Tech
Je vais joindre une capture d'écran plus tard, mais non, il n'y a pas de notifications push ou d'achats d'application pour l'application.
Paul Raymond du
de quoi voulez-vous exactement une capture d'écran? sous plist, il ne mentionne pas les droits.
Paul Raymond
2

Je suis allé dans l'onglet Capacités de ma cible, j'ai activé le partage de trousseau et cela commence à fonctionner

romain
la source
2

Pour moi, le truc était de

  1. ajouter / supprimer une capacité pour la cible (dans mon cas un widget);
  2. assurez-vous que le fichier de droits créé est répertorié dans les paramètres de construction;
  3. et ajouter la clé "APS Environemnt" avec la valeur "development" au fichier de droits d'accès.
Joris Weimar
la source
1

Dans Xcode 10, je l'ai fait fonctionner en déplaçant le fichier de droits dans le bon dossier dans Project Navigator. Je n'avais pas le fichier des droits, mais j'ai réussi à en obtenir un en basculant les fonctionnalités sur l'onglet des fonctionnalités.

entrez la description de l'image ici

Mikkokut
la source
1

J'ai eu cette même erreur et aucune des solutions ci-dessus n'a résolu le problème dans mon cas.

Ce qui a fonctionné pour moi a été de changer le paramètre «Peut être débogué» dans le fichier «Entitlements.plist» de «NON» à «OUI».

Joemamma
la source
1

Dans mon cas, le problème était le suivant: le profil d'approvisionnement utilisé pour l'étape de génération a été créé pour un ID d'application différent du profil d'approvisionnement utilisé pour l'étape d'exportation.

Assurez-vous donc que vous utilisez le même profil d'approvisionnement pour l'étape de création et d'exportation.

Alexey Komov
la source
Parce que je voulais souligner que cette erreur peut se produire en raison de différents profils d'approvisionnement à l'étape de construction et d'exportation. Le message d'erreur n'est pas utile pour trouver la cause première dans ce cas. Quant à savoir pourquoi la réponse est tardive - cette erreur n'est pas liée à une période de temps spécifique. Donc c'est arrivé il y a 1 an et ça se passe maintenant tout de même. La réponse acceptée n'a pas fonctionné dans mon cas.
Alexey Komov
1

Ce qui a fonctionné pour moi, c'est que j'ai créé l'archive dans XCode 11 et que j'ai effectué le téléchargement dans Xcode 12 beta.

Badr
la source
0

Vérifiez les fonctionnalités de l'application avec les options que vous avez activées pour votre identifiant d'application dans votre compte de développeur.

KavyaKavita
la source
C'est une application gratuite et je n'ai rien activé, et c'est tellement frustrant. Il s'installe très bien sur mon appareil, je ne sais tout simplement pas où chercher.
Paul Raymond du
pouvez-vous partager des captures d'écran des deux?
KavyaKavita
de quoi voulez-vous une capture d'écran?
Paul Raymond
capture d'écran de la section des fonctionnalités et de la configuration de l'ID d'application sur un compte de développeur
KavyaKavita
0

J'ai essayé quelques options répertoriées dans les réponses ici, mais aucune n'a aidé, cependant, activer et désactiver la case à cocher "Gérer automatiquement la signature" a résolu le problème.

john316
la source
0

TL; DR: vérifiez votre identifiant d'application et assurez-vous que les services correspondent à ce qui est dans votre cible.


Ce qui m'est arrivé, c'est que j'ai laissé Xcode 10.1 m'aider à créer un identifiant d'application, puis j'ai rencontré le problème décrit ici. (J'ai sélectionné l'ID d'application whildcard lorsque j'ai créé l'application dans iTunesConnect, donc je ne me suis même pas rendu compte que cela était fait.) Lorsque j'ai ouvert le portail des développeurs iOS, le nouvel ID d'application a activé automatiquement Game Center et In App Purchase.

Comme je ne pouvais pas activer Game Center dans votre Target -> Capabilities, j'ai activé l'achat intégré, puis mon application a pu être signée et téléchargée.

superarts.org
la source
0

Lorsque nous avons été confrontés au même problème, nous avons essayé toutes les choses ci-dessus, mais rien de tout cela n'a fonctionné.

Ce qui a fonctionné pour nous, c'est de changer l'identifiant du bundle pour qu'il ne soit pas identique au précédent, par exemple "com.name.App" en "com.name.App2"; laissez xcode tenter de récupérer / créer un profil d'approvisionnement, puis de le ramener à l'original.

J'ai cette idée de ce fil sur les forums de développeurs Apple - https://forums.developer.apple.com/thread/114539

Akshay Raje
la source
0

Je suis tombé sur cette page récemment après avoir essayé de créer une cible en double - aucune des suggestions ne fonctionnait pour moi. Une enquête plus approfondie et une certaine quantité de cheveux tirés m'ont finalement conduit à parcourir les paramètres de construction de mon application pour essayer de comprendre ce qui n'allait pas.

Il s'est avéré que mon projet pointait toujours vers le fichier des droits de la cible ORIGINAL, plutôt que d'avoir un des siens. Pour résoudre ce problème, j'ai accédé au fichier de droits d'origine dans le Finder (par exemple $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ), créé une copie dans le même dossier et l'ai renommé (par exemple NewTargetName.entitlements).

Ensuite, j'ai ouvert mon nouveau fichier de droits et changé le champ de l'identifiant de l'application pour qu'il corresponde à la fin de l'identifiant du bundle de ma nouvelle cible (par exemple ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ).

Enfin, j'ai mis à jour le champ 'Droits de signature de code' dans les paramètres de construction pour le chemin de mon fichier de droits (pour moi, c'était quelque chose du genre $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ).

Je suis retourné à l'onglet Signature et capacités, et voici, le problème a été résolu. J'espère que quelqu'un trouvera cela utile.

Strafe86
la source
0

Accédez à l' onglet Informations de Xcode et modifiez le champ d' identifiant du bundle - après avoir changé le nom de l'application, il n'a pas changé même si j'ai changé l'identifiant du bundle dans l'onglet Général. Les correctifs ci-dessus n'ont pas fonctionné pour moi, mais celui-ci a fonctionné instantanément.

hardfi
la source
0

J'ai eu ce problème avec une toute nouvelle application, dans Xcode 12 beta 3 (les soumissions d'applications ont commencé aujourd'hui ).

Xcode a activé "Gérer automatiquement la connexion". Cependant, l'ID d'équipe affiché dans le "Certificat de signature" ne correspondait pas à l'ID d'équipe affiché sur le site Web iTunes Connect. C'était la cause principale qui empêchait le téléchargement de l'application.

Comment je l'ai réparé:

  1. J'ai créé manuellement un profil d'approvisionnement pour la distribution de l'App Store
  2. Dans Xcode, j'ai tapé sur "Télécharger les profils manuels" dans Préférences -> Compte
  3. Ensuite, j'ai désactivé "Gérer automatiquement la signature".
  4. Une fois que j'ai sélectionné le profil d'approvisionnement dans la liste déroulante, l'ID d'équipe correct est apparu sous "Certificat de signature"
Eneko Alonso
la source
0

J'ai rencontré le même problème lors de la configuration d'un pipeline Gitlab qui exécute exportArchive cmd et télécharge sur l'AppStore. J'ai pu le faire fonctionner en remplaçant DEVELOPMENT_TEAM dans les paramètres de build par la même équipe sélectionnée dans Signing & Certs.

Parce que précédemment, il était vide, ce qui utilisait par défaut un autre identifiant DEV TEAM qui était incorrect et ne correspondait pas et il se plaignait du fait que "application-identifier" = 12331232.com.bannana.apples.peach ne correspond pas. Ce qui m'a amené à définir la bonne équipe DEV et cela a fonctionné.

Xcode ver: Version 11.3.1

J'espère que cela aide quelqu'un.

Jamal
la source
0

Notre configuration

Cibles multiples:

  • sous-applications
  • regarder
  • clip d'application
  • widget d'aujourd'hui

... et utilisez iCloud.

Activer et désactiver iCloud n'était pas une option pour nous. Nous l'utilisons déjà en production et plutôt ne le gâchons pas ... J'ai eu le message de la question d'origine et cette variante à un moment donné également:

Le profil ne correspond pas aux valeurs du fichier de droits pour les droits d'identifiant d'application et de groupes d'accès au trousseau.

Solution

Indiqué par d'autres réponses ici, nous nous sommes assurés que toutes les cibles auraient un .entitlementsfichier. Si la cible n'en avait pas, nous en avons créé une vide comme ceci:

<?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>

... et a souligné la cible de ce Code Signing Entitlementdans Build Settingsle vide .entitlementsfichier.

Résolu!

Andres Canella
la source
0

Supprimer tous les profils situés dans ~/Library/MobileDevice/Provisioning Profiles/

PerfectGamesOnline.com
la source