Je reçois une erreur de paramètres de provisionnement conflictuels lorsque j'essaie d'archiver pour soumettre une application iOS


312

J'essaie maintenant de Produit> Archiver mon application iOS pour la soumettre. Cependant, je reçois les erreurs suivantes:

AppName a des paramètres de configuration conflictuels. AppName est automatiquement signé pour le développement, mais une identité de signature de code en conflit iPhone Distribution a été spécifiée manuellement. Définissez la valeur d'identité de signature de code sur iPhone Developerdans l'éditeur de paramètres de génération ou passez à la signature manuelle dans l'éditeur de projet. »

La signature de code est requise pour le type de produit «Application» dans le SDK «iOS 10.1».

La situation ne changera même pas ceux que j'ai réessayé tout un processus pour recréer des certificats iOS ou un profil d'approvisionnement.

Je m'installais comme iOS Distributiondans TARGETS > Code Signing Identity > Release > Any iOS SDK. Lorsque j'ai modifié le paramètre comme iOS Developerici et modifié le paramètre en PROJECTS > Code Signing Identity > Release > Any iOS SDKtant que iOS Distribution, j'ai réussi l'archivage. Je me demande s'il est nécessaire de définir comme iOS Distributiondans l'éditeur cible ou non. Et si c'est obligatoire, veuillez me faire savoir comment contourner cette erreur.

Ma version XCode est 8.1.


4
Vous devez vous assurer que les paramètres de signature de code n'entrent pas en conflit entre le projet et la cible.
max_

1
Je pense que j'ai essayé toutes les combinaisons de paramètres de signature de code entre le projet et la cible. Mon problème se situe dans n'importe quel paramètre, je ne peux pas réussir lorsque je définis comme iOS Distributiondans l'éditeur cible, et je me demande si c'est nécessaire.
vanagar

1
@BenLeggiero Veuillez également consulter stackoverflow.com/a/52573190/341994 . Il y a une méthode manuelle de nettoyage, comme je l'explique ici.
mat

Merci pour le pointeur, @matt! Cela ne s'applique pas directement au problème sur lequel je travaillais, car nous créons une application Mac et n'utilisons pas d'intégrations comme Game Center. Je le mettrai en signet pour plus tard, cependant!
Ben Leggiero

Réponses:


897

J'ai eu cette même erreur, mais j'avais déjà coché "Gérer automatiquement la signature".

La solution était de la décocher, puis de la vérifier à nouveau et de resélectionner l'équipe. Xcode a ensuite corrigé tout ce qui provoquait le problème.


15
Merci! Cela a fonctionné pour moi, pour toute personne qui utilise cordova pour générer une plate-forme ios, j'obtenais cette erreur, même en utilisant la dernière version de cordova. la signature automatique a été vérifiée par défaut mais aucune équipe n'a été sélectionnée. ce n'est que lorsque j'ai désélectionné gérer la signature et sélectionné la signature automatique et que l'équipe a pu faire fonctionner cela. merci Erin!
Jtello

2
Lorsque je le vérifie à nouveau, la signature de code définit automatiquement iOs Developer, mais je dois le définir iOs Distribution, et lorsque je le redéfinis iOs Distribution Xcode via la même exception que celle mentionnée ci-dessus.
ami rt

1
@amirt J'ai exactement le même problème que le vôtre. L'avez-vous réparé?
Kimi Chiu

@KimiChiu Oui, frère, je l'ai fait.
ami rt

2
C'est vrai, mais pour clarifier un peu plus, voici ce que j'ai vécu: - Vous devez créer manuellement un profil d'approvisionnement de distribution (via le site Web du développeur Apple) au préalable. La signature automatique ne fait pas cela pour vous. - Dans le cas où les identités de signature de code dans les paramètres de construction étaient en quelque sorte bousillées: les 4 d'entre elles doivent être définies sur "Développeur iOS" (même celles de la version) pour que la signature automatique fonctionne
jakob.j

153

J'ai eu le même problème, j'ai remarqué que si vous voulez faire une version de votre application iOs et la publier sur l'App Store, vous n'avez pas du tout besoin de mettre le "Code Signing Identity" comme version, gardez-le simplement comme Développeur iOs.

Allez dans Votre projet -> Paramètres de construction -> Identité de signature de code et mettez tout au développeur iOs.

entrez la description de l'image ici


3
Ouais, ça marche. Mais pour les versions ad hoc, je dois désactiver la signature automatique et y aller et définir "Distribution iOS" à la place. Pourquoi Apple l'a-t-il implémenté de cette façon? Cela n'a aucun sens :(
algrid

c'est la meilleure réponse. xcode réécrira le paramètre en local lorsque "archive".
Tom Marvolo Riddle

veuillez regarder le "Review xxx.ipa content:" affiché après l'archivage, c'est "Certificate: iOS Distribution".
Tom Marvolo Riddle

Ce devrait être la bonne réponse. La solution acceptée pour cette question est partiellement correcte.
Sanchit Kumar Singh

72

Pour ceux qui viennent de Ionic ou Cordova, vous pouvez essayer ce qui suit:

Ouvrez le fichier yourproject/platforms/ios/cordova/build-release.xcconfiget changez-en:

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

en cela:

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

et essayez d'exécuter à ios cordova build ios --releasenouveau le pour compiler une version de version.

Référence: https://forum.ionicframework.com/t/ios-build-release-error-is-automatically-signed-for-development-but-a-conflicting-code-signing-identity-iphone-distribution-has- spécifié manuellement / 100633/7


3
Après avoir essayé toutes les autres réponses, c'est celle qui l'a finalement fait fonctionner pour moi. Je vous remercie!
mikewagz

1
Le fichier s'appelle désormais build-release.xcconfig . Vous avez manqué un 'c' Voici un script bash pour le faire: `` `` #! / Usr / bin / env bash sed -i "" "s / Distribution iPhone / iPhone Developer / g" platformes / ios / cordova / build-release.xcconfig exit 0; `` ``
Kent Bull

3
Vous pouvez également simplement commenter les lignes; le paramètre iPhone Developer est défini build.xcconfig, ces lignes le remplacent simplement.
Jules

3
J'ai simplement supprimé ces deux lignes et j'ai laissé Xcode gérer automatiquement la signature.
Ryan H.

3
Vous pouvez utiliser le plugin cordova-custom-config pour le faire automatiquement avec les lignes suivantes dans config.xml: <custom-preference buildType = "release" name = "ios-XCBuildConfiguration-CODE_SIGN_IDENTITY" value = "iPhone Developer" xcconfigEnforce = " true "/> <custom-preference buildType =" release "name =" ios-XCBuildConfiguration-CODE_SIGN_IDENTITY [sdk = iphoneos *] "value =" iPhone Developer "xcconfigEnforce =" true "/>
FactualHarmony

64

Vous êtes en train de trop penser à cela. Le processus est considérablement amélioré et extrêmement facile dans Xcode 8. Profitez de ce fait.

Première étape : n'essayez en aucun cas de définir une forme ou un formulaire pour définir les paramètres de signature de code dans les paramètres de génération. Ne t'approche pas d'eux. Vous allez absolument gâcher ça. Modifiez plutôt la cible et effectuez tout le travail dans le volet Général. Meilleure approche: configurez-vous pour la signature automatique de code - entrez simplement votre équipe et cochez la case, comme ceci:

entrez la description de l'image ici

Deuxième étape : assurez-vous que vous disposez d'une identité de distribution iOS (certificat). Vous pouvez le vérifier sous Préférences Xcode> Comptes, Afficher les détails. Ce serait aussi une bonne idée pour le moment d'aller au centre des membres et de vous procurer une disposition mobile App Store pour cette application, puis de la télécharger et de l'installer.

Troisième étape : choisissez «Périphérique iOS générique» comme destination, puis choisissez Produit> Archiver. L'application sera compilée, l'archive est créée et vous êtes maintenant prêt à soumettre à l'App Store.


Merci beaucoup! Cela a réussi. Permettez-moi de confirmer à propos de l'étape 2: téléchargement de la "fourniture mobile". S'agit-il de "Profils de provisionnement iOS (distribution)"? Je viens de double-cliquer sur le fichier téléchargé, et est-ce l'installation que vous avez mentionnée ici?
vanagar

Oui, exactement. Le fichier téléchargé a maintenant été copié dans le monde de Xcode (vous pouvez jeter l'original), et sera vu par Xcode lorsque vous soumettez réellement à l'App Store.
mat

Il se peut que dans certaines circonstances, vous n'ayez pas besoin de créer le fichier de mise à disposition mobile App Store, car Xcode le créera automatiquement pour vous. Mais je trouve que c'est une bonne idée d'en faire quand même.
mat

2
C'est drôle que tous les didacticiels de déploiement que j'ai vus vous disent de modifier manuellement les paramètres de signature de code sur chaque cible. J'avais activé la gestion automatique, mais je ne m'en rendais même pas compte.
Dan

1
@andreszs La signature automatique fait un bon travail de création d'un certificat et d'un profil de développement, c'est tout ce dont vous avez besoin pour développer et archiver. Mais quand vient le temps de distribuer sur l'App Store, je trouve que c'est une bonne idée de créer le profil de distribution manuellement et de le télécharger, prêt à être utilisé pendant le processus d'exportation.
mat

52

Si vous obtenez cette erreur

L'application présente des paramètres de configuration conflictuels. L'application est automatiquement signée, mais l'ID de profil d'approvisionnement a été spécifié manuellement. Définissez la valeur du profil d'approvisionnement sur "Automatique" dans l'éditeur de paramètres de génération ou passez à la signature manuelle dans l'éditeur de projet.

puis assurez-vous que l' option PROVISIONING_PROFILE est vide dans les paramètres de génération cible :

entrez la description de l'image ici


1
Je n'ai pas fait de distinction entre l'utilisateur et le profil de construction du système ... alors merci d'avoir souligné qu'il s'agissait de "PROVISIONING_PROFILE"
petrosmm

Cela m'a aidé.
Rafal Zawadzki

C'est l'erreur que j'ai recherchée et j'ai obtenu le lien vers cette question SO, mais c'est la réponse dont j'avais besoin. Notez qu'essayer de spécifier réellement une valeur "Automatique" ne fonctionne pas. Vous ne devez PAS tout spécifier malgré le message d'erreur indiquant le contraire. Pour moi, nous utilisons des fichiers xcconfig, il s'agissait donc de supprimer le paramètre du fichier de configuration.
user107172

29

N'oubliez pas de faire ça,

Sélectionnez le projet -> Paramètres de construction. Recherchez PROVISIONING_PROFILE et supprimez toutes les absurdités.


1
Probablement la seule solution qui l'a fait pour moi, merci
Alexander Vitanov

4
Je l'ai fait, en décochant et en revérifiant la signature Gérer automatiquement dans l'onglet Général, puis en re-sélectionnant l'équipe. Merci Rein et Erin. (Hé regardez ça, vos noms sont des anagrammes!)
Dave Levy

Eh bien, c'est intéressant @DaveLevy
Rein rPavi

Je n'ai pas accordé autant de crédit car mon PROVISIONING_PROFILE ne semblait pas contenir d'ordures, il était réglé sur "Automatique" et avait l'air bien. Le supprimer et réactiver la signature automatique a fait l'affaire, cependant!
Rafael Nobre

1
Il est défini sur "Automatique" et ne peut pas être supprimé.
Dror Bar

22

Si vous êtes du monde ionique. Vous pouvez obtenir une erreur de "signature de code de conflit" lorsque vous êtes à l'étape "archive", comme ci-dessous:

... est automatiquement signé pour le développement, mais une identité de signature de code en conflit avec iPhone Distribution a été spécifiée manuellement. Définissez la valeur d'identité de signature de code sur «iPhone Developer» dans l'éditeur de paramètres de génération ou passez à la signature manuelle dans l'éditeur de projet. La signature de code est requise pour le type de produit «Application» dans le SDK «iOS 10.x»

Dans ce cas, allez dans Paramètres de construction / sous signature, identité de signature de code, et sélectionnez les deux en tant que développeur iOS, pas Distribution.

Allez à nouveau dans le menu: Produit / Archive, puis le problème sera résolu.


2
Le problème est qu'il est réinitialisé à chaque build ... Cela gâche nos builds automatisés. Une idée de comment changer cela dans un script non interactif?
Webberig

1
Excellent, cela a résolu le problème pour moi. Cette solution est parfaitement logique, avec le recul et avec une grande consommation d'alcool.
Steven Kramer

18

Pour ceux qui viennent de Ionic ou Cordova, vous pouvez essayer ce qui suit: Déconnectez vos appareils ios de l'ordinateur avant ios cordova build ios --release(semble changer l'appareil ciblé pour la signature xcode).


6
C'est la réponse la plus stupide, et cela fonctionne complètement. Je déteste toutes les solutions de contournement que nous avons à faire avec Xcode pour faire fonctionner une application.
Jordan Benge

c'est juste. Lorsque j'ai eu mon iPad connecté au lieu de mon iPhone, je reçois cette erreur. Une fois que j'ai déconnecté tous les appareils iOS et que je l'ai construit à partir de la ligne de commande, cela a bien fonctionné après cela.
Neel

Tout à fait raison. J'ai passé une journée entière à essayer de résoudre ce problème et c'est la seule solution qui fonctionne pour moi.
ulisesvera

1
IOS me met en colère .. tout doit être résolu par un truc ... sinon merci mec
Seloka

15

Accédez aux paramètres de construction, recherchez l'identité de signature de code et définissez une valeur de SDK iOS pour le développeur iOS:

entrez la description de l'image ici


4
Oui, c'est exactement ce que le message d'erreur demande de faire. Mais pourriez-vous expliquer pourquoi diable utiliser "iOS Developer" pour les builds de versions aurait un sens?
2018

étrangement, c'est ce qui a fonctionné aussi pour un projet généré par l'unité il y a un certain temps
ina

15

La seule solution a fonctionné pour moi:

  1. Fermer le projet Xcode
  2. À l'aide du Finder, allez dans le dossier du projet
  3. Faites un clic droit sur .xcodeproj et choisissez "Afficher le contenu du paquet"
  4. Faites un clic droit sur project.pbxproj allez sur "Ouvrir avec" et choisissez TextEdit
  5. Recherchez maintenant votre instanceId de profil de provision spécifié dans le message d'erreur.
  6. Supprimez tous les textes trouvés et laissez les profils de provisionnement nettoyer.
  7. Sauvegarder et fermer
  8. Ouvrir Xcode
  9. Activer la gestion automatique de la signature

Prendre plaisir! J'espère que ce sera utile!


Je savais que ça allait être un problème avec Xcode. Merci un homme de tonne !!!! Il montrait automatique dans Build Setting for Provision Profile mais donnait toujours cette erreur. Dieu merci, je n'étais pas le seul à avoir ce problème.
Amber K

En fait, il peut être utilisé si vous avez un compte de développeur et une application, mais pour de nombreuses applications, cela provoque d'autres problèmes.
goraga1

9

Pour moi, changez Code Signing Identitypour tous iOS Developerà la fois pour Debuget Release.

Et Code Signing Styleà Automatic.

entrez la description de l'image ici


8

Dans mon cas, j'ai défini l'option "automatique" dans les paramètres de construction.

entrez la description de l'image ici


7

Essayez l'une des solutions suivantes

1. Suppression et ajout de la plate-forme ios et reconstruction du projet pour ios

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

2.Modification du paramètre de construction Xcode

La solution était de la décocher, puis de la vérifier à nouveau et de resélectionner l'équipe. Xcode a ensuite corrigé tout ce qui provoquait le problème.

3.Changez le code suivant dans la plateforme

Cela n'avait aucun sens pour moi, car j'avais défini le projet pour se connecter automatiquement à xcode. Comme vous, la vérification et la désactivation n'ont pas fonctionné. Mais alors j'ai lu le dernier chemin de fichier donné et l'ai suivi. Le chemin du fichier est APP> Plateformes> iOS> Cordova> build-release.xconfig

Et dans le fichier, iPhone Distribution est explicitement défini pour CODE_SIGN_IDENTITY.

Changement:

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

À:

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

7

J'étais en difficulté depuis longtemps, j'ai essayé toutes les solutions proposées. Rien ne fonctionne pour moi.

J'ai ensuite trouvé le problème: il y avait un "Paramètres définis par l'utilisateur" pour "PROVISIONING_PROFILE" à la fin de l'onglet Paramètres de génération. Je le supprime pour les paramètres de génération Project et Target. Ensuite, la signature automatique a parfaitement fonctionné.

J'espère que cela aidera quelqu'un d'autre. :)


6

Recherchez le fichier .xcodeproj et ouvrez-le avec un éditeur de texte

Trouvez les champs ci-dessous et faites-les comme ceci

CODE_SIGN_IDENTITY = "Développeur iPhone"; "CODE_SIGN_IDENTITY [sdk = iphoneos *]" = "Développeur iPhone";

PROVISIONING_PROFILE = "";

PROVISIONING_PROFILE_SPECIFIER = "";


6
  1. Général -> Signature -> cocher gérer automatiquement la signature et sélectionner l'équipe

  2. Paramètres de construction -> Signature -> Identité de signature de code -> RÉGLER TOUT SUR "Développeur IOS"


4

La seule chose a fonctionné pour moi.

Ouvrez le projet -> Sélectionnez votre cible -> Allez dans Paramètres de construction -> Rechercher PROVISIONING et supprimez les profils sélectionnés.


2

Dans mon cas, j'ai dû me connecter au site Web des développeurs Apple et réinitialiser la liste des appareils.

Il semble qu'ils exigent maintenant que vous le fassiez chaque année lorsque l'abonnement est renouvelé, avant de pouvoir ajouter de nouveaux appareils et générer des certificats.


2

J'ai eu le même problème que le mien a été résolu en recherchant "profil d'approvisionnement" dans le paramètre de génération de l'extension de partage

Ensuite, il y avait deux champs "Provisioning Profile", un normal et un obsolète. La version régulière était en mode automatique, mais pas la version obsolète. Changer celui-ci en automatique a également corrigé mon erreur.


2

Pour moi, j'avais fait glisser le dump_symsbinaire et un tas de scripts dans ma cible de build lorsque j'ai installé manuellement le SDK Firebase. Supprimer ceux de ma cible et de mon projet a résolu le problème.


Irréel, merci d'avoir indiqué la bonne direction. Plus d'informations ici: stackoverflow.com/questions/41056047/…
Dror Bar

2

Utilisation de Xcode 10: Aucune des autres solutions ici n'a fonctionné pour moi.

Cette erreur semble être quelque chose que vous ne pouvez pas corriger dans Xcode 10

J'ai dû revenir à Xcode 9 pour résoudre ce problème, puis mettre à jour vers Xcode 10 afin de pouvoir exécuter mon application sur iOS 12 sur un appareil non émulateur.

Toute autre solution trouvée sur Stack Overflow ou ailleurs, utilisée dans Xcode 10, m'a envoyé dans un cycle sans fin de conflits d'approvisionnement ou de problèmes de signature de certificat. Il semble que la signature soit rompue dans Xcode 10, que vous utilisiez la méthode automatique ou que vous sélectionniez manuellement les profils de provisionnement et les certificats.

Vous pouvez revenir à Xcode 9 en supprimant d'abord Xcode 10 de votre dossier Applications. Ensuite, installez Xcode 9 à l'aide du fichier .xip répertorié sur cette page Apple Developers .

Dans Xcode 9, utilisez l'option de génération automatique. Vous devrez peut-être décocher «Gérer automatiquement la signature» et la resélectionner, et vous devrez peut-être également révoquer un certificat existant sur developer.apple.com .

Après avoir réussi à créer l'application dans Xcode 9, vous pouvez effectuer une mise à jour vers Xcode 10 à l'aide de l'App Store. Après avoir rouvert l'application dans Xcode 10, tout fonctionnait toujours. Vous n'aurez peut-être pas besoin de le faire, mais j'en avais besoin pour construire pour iOS 12 qui nécessite Xcode 10.


Essayez d'ajouter le drapeau --buildFlag = "- UseModernBuildSystem = 0"
Redwolf

2

J'ai ouvert le fichier de projet dans un éditeur de texte "Atom", puis j'ai recherché l'ID du profil d'approvisionnement et l'ai supprimé.


0

Modifiez votre code pour vous connecter au certificat de distribution.


Merci, mais je l'ai essayé plusieurs fois au cours des 3 derniers jours et j'ai échoué à chaque fois.
vanagar

0

Après la mise à jour vers Xcode 8.3.2, j'ai eu la même erreur avec un projet Cordova. J'avais besoin de mettre à niveau Cordova (v7.0.0) et la plate-forme iOS (v4.4.0) pour que la signature de code fonctionne.


0

Vous devez ajouter un certificat de production et (ou) en télécharger un à partir de votre compte de développement

entrez la description de l'image ici


0

Veuillez vous assurer que «Product Bundle Identifier» dans le nom des paramètres de construction correspond à l'identifiant réel du bundle. Cela a fonctionné pour moi.


0

Pour moi, je dois passer de l'auto au manuel et passer à l'auto, même erreur. Passez en manuel, modifiez ces profils d'approvisionnement et ces paramètres de signature de code, générez et obtenez des erreurs, puis revenez à auto, puis c'est tout simplement réussi.


0

J'ai eu ce même problème. J'ai réalisé que c'était parce que j'utilisais xcode pendant que je l'utilisais. Étant donné que les mises à jour ne se sont pas installées correctement, elles ont provoqué l'apparition de ces erreurs. La seule chose qui l'a corrigé était de quitter xcode et de le rouvrir. Lorsque je l'ai rouvert, il m'a demandé d'installer des mises à jour. Une fois les mises à jour installées, les erreurs ont disparu.


0

Le problème réside dans les paramètres de Cordova.

Notez ceci:

iPhone Distribution has been manually specified

Cela n'avait aucun sens pour moi, car j'avais défini le projet pour se connecter automatiquement à xcode. Comme vous, la vérification et la désactivation n'ont pas fonctionné. Mais alors j'ai lu le dernier chemin de fichier donné et l'ai suivi. Le chemin du fichier estAPP > Platforms > ios > Cordova > build-release.xconfig

Et dans le fichier, iPhone Distribution est explicitement défini pour CODE_SIGN_IDENTITY.

Changement:

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

À:

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

C'est une chose simple, et le message d'erreur indique clairement que l'iPhone Distribution a été spécifié manuellement, mais il ne dit pas vraiment où, sauf si vous suivez le chemin. J'ai regardé et joué avec xcode pendant environ trois heures en essayant de comprendre cela. J'espère que cela aidera quiconque à l'avenir.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.