335 votes

J'obtiens une erreur de conflit de paramètres de provisionnement lorsque j'essaie d'archiver pour soumettre une application iOS.

Maintenant, j'essaie de Product>Archivage de mon application iOS à soumettre. Cependant, j'obtiens les erreurs suivantes :

AppName a des paramètres de provisionnement conflictuels. AppName est automatiquement signé pour le développement, mais une identité de signature de code conflictuelle iPhone Distribution a été spécifiée manuellement. Définissez la valeur de l'identité de signature de code à iPhone Developer dans l'éditeur de paramètres de construction, ou passer à la signature manuelle dans l'éditeur de projet.`

La signature du code est requise pour le type de produit 'Application' dans le SDK 'iOS 10.1'`.

La situation ne change pas, même si j'ai réessayé tout un processus pour recréer les certificats iOS ou le profil de provisionnement.

J'étais en train de régler comme iOS Distribution en TARGETS > Code Signing Identity > Release > Any iOS SDK . Quand j'ai changé le paramètre comme iOS Developer ici, et modifié le paramètre dans PROJECTS > Code Signing Identity > Release > Any iOS SDK comme iOS Distribution que j'ai réussi à archiver. Je me demande s'il est nécessaire de définir en tant que iOS Distribution dans l'éditeur cible ou non. Et si c'est obligatoire, que quelqu'un me dise comment je peux contourner cette erreur.

Ma version de XCode est 8.1.

4 votes

Vous devez vous assurer que les paramètres de signature de code ne sont pas en conflit entre le projet et la cible.

1 votes

Je pense avoir essayé toutes les combinaisons de paramètres de signature de code entre le projet et la cible. Mon problème est que, quel que soit le paramètre, je n'arrive pas à obtenir le succès lorsque je définis comme iOS Distribution dans l'éditeur de cible, et je me demande si c'est nécessaire.

1 votes

@BenLeggiero Veuillez voir aussi stackoverflow.com/a/52573190/341994 . Il y a une façon manuelle de nettoyer, comme je l'explique ici.

937voto

Erin Geyer Points 161

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

La solution était de la décocher, puis de la recocher et de resélectionner l'équipe. Xcode a alors corrigé de lui-même la cause du problème.

16 votes

Merci ! Cela a fonctionné pour moi, pour tous ceux qui utilisent Cordova pour générer une plateforme ios, je recevais cette erreur, même en utilisant la dernière version de Cordova. la signature automatique était cochée par défaut mais aucune équipe n'était sélectionnée. ce n'est que lorsque j'ai désélectionné la gestion de la signature et sélectionné la signature automatique et l'équipe que j'ai réussi à faire fonctionner le tout. merci Erin !

4 votes

Lorsque je vérifie à nouveau, le code de signature définit automatiquement iOs Developer mais j'ai besoin de définir iOs Distribution, et lorsque je définis iOs Distribution Xcode par la même exception comme mentionné ci-dessus.

2 votes

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

171voto

LedMachine Points 2565

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 release, il suffit de le garder comme développeur iOs.

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

enter image description here

3 votes

Oui, ça marche. Mais pour les constructions ad hoc, je dois désactiver la signature automatique et définir "iOS Distribution" à la place. Pourquoi Apple l'a implémenté de cette façon ? Cela n'a aucun sens :(

0 votes

C'est la meilleure réponse. xcode va réécrire les paramètres en local quand il va "archiver".

0 votes

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

75voto

Charlie Ang Points 741

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

Ouvrir le fichier yourproject/platforms/ios/cordova/build-release.xcconfig et changer à partir de cela :

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

dans ceci :

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

et essayer d'exécuter le ios cordova build ios --release encore une fois pour compiler une version release.

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-been-manually-specified/100633/7

4 votes

Après avoir essayé toutes les autres réponses, c'est celle qui m'a finalement permis d'obtenir un résultat. Je vous remercie !

2 votes

Le fichier s'appelle maintenant build-release.xcconfig . Vous avez oublié un 'c' Voici un script bash pour le faire : ```` #!/usr/bin/env bash sed -i "" "s/iPhone Distribution/iPhone Developer/g" platforms/ios/cordova/build-release.xcconfig exit 0 ; ````

0 votes

@KentJohnson Ah, merci pour la correction. J'ai mis à jour la réponse pour faire référence au nom de fichier correct.

66voto

matt Points 60113

Tu réfléchis beaucoup trop. Le processus est grandement amélioré et extrêmement facile dans Xcode 8. Profitez de ce fait.

Première étape : N'essayez pas, de quelque manière que ce soit, de définir les paramètres de signature de code dans les paramètres de construction. Ne vous en approchez pas. Vous allez absolument tout gâcher. Modifiez plutôt la cible et effectuez tout le travail dans le volet Général. Meilleure approche : configurez vous pour la signature automatique du code - entrez simplement votre équipe et cochez la case, comme ceci :

enter image description here

Deuxième étape : Assurez-vous que vous disposez d'une identité de distribution iOS (certificat). Vous pouvez le vérifier sous Xcode Preferences > Accounts, View Details. Ce serait également une bonne idée à ce moment-là d'aller au centre des membres et de vous procurer une provision mobile App Store pour cette application, puis de la télécharger et de l'installer.

Troisième étape : Choisissez "Appareil iOS générique" comme destination, et choisissez Produit > Archive. L'application sera compilée, l'archive est créée, et vous êtes maintenant prêt à la soumettre à l'App Store.

0 votes

Merci beaucoup ! C'est réussi. Permettez-moi de confirmer l'étape 2 : téléchargement de "mobile provision". Est-ce que c'est "iOS Provisioning Profiles (Distribution)" ? J'ai juste double-cliqué sur le fichier téléchargé, et est-ce l'installation que vous avez mentionnée ici ?

0 votes

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 le soumettrez à l'App Store.

0 votes

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

66voto

atereshkov Points 448

Si vous obtenez cette erreur

L'application a des paramètres de provisionnement contradictoires. L'application est automatiquement signée, mais le profil de provisionnement 'ID' a été spécifié manuellement. Définissez la valeur du profil de provisionnement sur "Automatique" dans l'éditeur de paramètres de construction, ou passez à la signature manuelle dans l'éditeur de projet.

puis veillez à que vous avez vide PROFIL D'APPROVISIONNEMENT option dans Cible Construire Paramètres :

enter image description here

2 votes

Je n'ai pas fait la distinction entre le profil de construction de l'utilisateur et du système... donc merci de m'avoir signalé que c'était "PROVISIONING_PROFILE".

0 votes

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 que si vous essayez de spécifier la valeur "Automatique", cela ne fonctionne pas. Vous devez NE PAS tout spécifier malgré le message d'erreur qui dit le contraire. Pour moi, nous utilisons des fichiers xcconfig, il suffisait donc de supprimer le paramètre dans le fichier de configuration.

0 votes

Je me battais contre ça et ça a marché, merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X