Un profil d'approvisionnement valide pour cet exécutable est introuvable pour le mode débogage

239

J'obtiens cette erreur pendant que j'essaie de déboguer mon application sur l'appareil.

J'ai créé un profil d'approvisionnement de développement tel qu'il est mentionné sur le portail des développeurs. Mon périphérique de développement est sélectionné dans le profil et je sélectionne le profil correct dans le menu d'identité de signature de code de Target. J'ai recréé le profil de provisioning plusieurs fois et l'ai également supprimé et réinstallé et recréé le projet, mais je l'obtiens chaque fois que j'essaie de déboguer sur l'appareil.

Btw, le profil de fourniture de distribution adhoc fonctionne.

J'ai passé toute ma journée à trouver une solution mais rien. Quelqu'un a une solution?

xenep
la source
2
Apple fournit des instructions détaillées à l'intérieur du portail d'approvisionnement: Certificats , Profil d'approvisionnement
Casebash
Curieusement, je ne vois cette erreur que dans la console Xcode Organizer mais l'application s'installe et s'exécute toujours sans problème. Je construis avec un profil ad hoc et un profil de distribution App Store. Pourrait-il se plaindre du profil ad hoc mais s'exécuter avec le profil de distribution de l'App Store?
richever
J'ai suivi ce tutoriel et cela a fonctionné pour moi! J'espère que ça aide. youtube.com/watch?v=dUdHifLTyrE
matiaslezin
J'ai eu le même problème. Le périphérique n'a pas été ajouté au profil d'approvisionnement, c'était la raison.
kelin
1
Si vous recevez ce message après une semaine de fonctionnement de l'application et que vous utilisez un compte de développeur gratuit, vous devez réinstaller
Ryan Haining

Réponses:

186

Cela peut être dû au fait que votre iPhone n'est pas reconnu par le portail d'approvisionnement.

Solution:

1) Dans Xcode, allez à -> Construire -> nettoyer toutes les cibles.

2) Dans "Groupes et fichiers" -> Cible -> développez-le -> faites un clic droit sur votre application et sélectionnez Nettoyer "votre application"

3) Aller-> Fenêtre -> Organisateur

4) Dans l'onglet Appareils à gauche, sélectionnez votre iphone

5) Dans la section Provisioning de l'iphone sélectionné, supprimez tous les profils actuels (le cas échéant)

6) Débranchez votre iPhone et rebranchez-le.

7) Aller à> Fenêtre -> Organiseur -> cliquer avec le bouton droit sur votre iPhone -> Ajouter un appareil au portail d'approvisionnement

8) Assurez-vous maintenant que vous avez sélectionné l'identité de signature de code appropriée dans les paramètres du projet d'édition -> build -> signature de code

Construisez et exécutez. Bonne chance!

samdeV
la source
7
pas nécessairement. J'ai effectué toutes les étapes que vous avez mentionnées, et mon appareil est / était déjà répertorié dans le portail d'approvisionnement, et je reçois toujours cette erreur.
Nate
35
Ceci est désormais obsolète. Dans Xcode 4.3+, allez dans Organiseur> sélectionnez l'appareil> cliquez sur "Ajouter au portail" en bas de l'écran et vous êtes absent! Si vous vous trompez de mot de passe la première fois que Xcode Organizer vous le demande, il installera toujours l'appareil mais sans certificat valide. L'actualisation des profils d'approvisionnement sous «Bibliothèque» n'a aucun effet sur le certificat associé de l'appareil. Voila!
pchap10k
1
Je ne pensais pas que ça allait marcher, mais c'était totalement le cas. Merci! m'a sauvé beaucoup d'heures de maux de tête. :) btw, j'utilise xcode 4.5.
Mona
1
Lors de "l'ajout au portail d'approvisionnement", j'ai reçu une erreur indiquant que je devais accepter le nouvel accord sur le site Web developer.apple.com. Merci!
haa
11
Bien dépassé. C'est complètement différent dans xCode 6 ... veuillez mettre à jour votre réponse.
stevebot
45

Dans Xcode 10, j'ai résolu ce problème en passant le système de construction du projet de "nouveau système de construction" à "système de construction hérité" (Fichier -> Paramètres du projet).

che
la source
5
La question initiale était "J'ai passé toute ma journée à trouver une solution mais rien. Quelqu'un a une solution?" concernant l'erreur "Un profil d'approvisionnement valide pour cet exécutable n'a pas été trouvé pour le mode débogage". Changer le système de construction dans la nouvelle version de Xcode résout le problème. Il existe de nombreuses solutions publiées pour diverses situations lorsque cela se produit.
che
3
@ user191712 Ignorez les modérateurs en herbe. Votre réponse m'a sauvé des heures passées à descendre des rabbitholes sans rapport avec l'erreur. Je vous remercie!
remondo
J'ai oublié de vérifier cette configuration ... 🤦‍♂️ merci mec!
cesarak
Merci beaucoup. Cela a fonctionné pour moi sans perdre de temps!
Deniz
1
Pour une raison que je ne comprends toujours pas, c'était aussi mon problème avec un [email protected]projet et XCode 10.0.
Żabojad
41

J'ai eu le même problème. Tout allait bien: l'appareil était enregistré dans IOS Provisioning Portal; le certificat a été téléchargé et les profils de provisioning de développement pour mon application ont été téléchargés.

Alors la solution !!!

Cible> Obtenir des informations

Sélectionnez la configuration à libérer (voici le diable) Dans la signature de code, la vérification de l'identité de signature de code développeur iPhone. Fermer.

Sur Target, choisissez Nettoyer la cible, puis exécutez l'application.

Bonne chance.

Rafael
la source
67
Où est cette cible-> Obtenir des informations?
Septiadi Agus
1
J'ai vu que je peux définir l'identité de signature de code sur devloper sur les paramètres de construction.
Septiadi Agus
2
Pas de capture d'écran pour "Target-> Get Info"? Je ne le trouve pas.
GusOst
1
@Rafael Qu'est-ce que Target-> Get Info?
skywinder
1
Veuillez expliquer ce qu'est "Cible> Obtenir des informations".
bitops
28

Dans mon cas, c'était parce qu'il y avait quelques versions du certificat de développeur dans le trousseau.

Supprimer le certificat iPhone Developer de Mes certificats et certificats, puis télécharger le dernier depuis le centre de développement et l'installer (double-cliquez sur le fichier .cer)

trié mon problème

danmux
la source
Eu le même problème. Plusieurs dev Devins à mon nom. Cela l'a corrigé.
Héctor Ramos
2
oui cela a fixé le nôtre. cliquez sur Cible> Paramètres de construction> signature de code> débogage> cliquez sur la liste déroulante pour IPHONE DVELOPER> et ne choisissez pas la sélection automatique, essayez chacun des autres ID de développeur attachés à l'autre équipe * PP
brian.clear
1
cela devrait être la bonne réponse ... cela a du sens puisque l'appareil n'est pas ajouté dans le profil de provisionnement réel ....
Calleth 'Zion'
si vous essayez d'exécuter avec un profil de signature de code auquel le périphérique actuel n'est pas ajouté, vous obtiendrez exactement la même erreur (par exemple, cela pourrait se produire lors du passage du débogage à la version)
kritzikratzi
1
@ChrisConway Oui, mais la réponse marquée n'explique pas le pourquoi du problème ... il s'agit simplement de faire tout un processus sans connaître le pourquoi;)
Calleth 'Zion'
18

Enfin, j'ai pu résoudre le problème. Un de mes collègues a révoqué le certificat de développeur sur iOS Provisioning Portal pour ses applications de test. pour la fixation; J'ai supprimé le certificat de développeur existant sur mon trousseau, j'ai demandé un nouveau certificat avec la clé privée existante, j'ai révoqué le certificat du portail d'approvisionnement et soumis le certificat nouvellement demandé. Je l'ai ensuite téléchargé et installé.

maintenant je peux déboguer mon application sur mon appareil :)

xenep
la source
L'une des causes pourrait être votre "projet => Paramètres de build => Signature => Équipe de développement" est différent de votre "cible => Paramètres de build => Signature => Équipe de développement", faites-les simplement
Arrêtez
16

Cela m'a surpris parce que quelqu'un avait changé le paramètre "Build Configuration" de la configuration "Run" en "Release" (sous "Product"> "Edit Scheme .."> "Run * .app").

Il est normalement défini sur "Debug" et, par conséquent, il n'utilisait PAS le certificat de développeur et le profil d'approvisionnement que j'attendais, il utilisait plutôt les certificats de distribution.

En plus de cela, j'ai trouvé que si vous regardez dans le journal de la console pour le périphérique (via l'Organiseur), il peut y avoir un code d'erreur qui indique mieux votre problème. Par exemple, j'avais ...

Mon Sep  5 09:39:56 unknown installd[304] <Error>: profile not valid: 0xe8008012

J'ai ensuite googlé "0xe8008012" et obtenu la page suivante qui indique une erreur "0xE8008012 - L'UUID du périphérique ne correspond à aucun dans le profil d'approvisionnement en cours de chargement".

MobileInstallation

Oliver Pearmain
la source
Vous avez sauvé une vie aujourd'hui! Merci.
Okhan Okbay
15
  • Xcode->Click your app -> TARGETS -> click the app-> Build Setting-> Code Signing: Assurez-vous que Debug et Any iOS SDK sont définis sur iPhone Development

  • Xcode -> Product -> Scheme -> Edit Scheme: Assurez-vous que Build Configuration est défini sur Debug .

Badr
la source
ce n'est pas pour la distribution.
Curnelious
Pour clarifier, j'ajouterais que vous devez définir la configuration de Build sur Debug pour Run(et généralement pour Testet Analyzeaussi). Archivedevrait généralement être Release , sinon votre distribution sera gâchée.
Aron
13

Dans mon cas, ce problème s'est produit car un autre profil d'approvisionnement a été sélectionné pour les tests unitaires. Ça m'a juste pris des heures pour trouver ça ...

leMale
la source
@IeMale Vous avez sauvé ma journée!
stavros.zavrakas
13

J'ai eu le même problème avec Xcode 10.0 beta 5 (10L221o) et un appareil exécutant iOS 12.0 (16A5345f) - c'est aussi beta.

Après l'installation de l'alerte d'application intitulée «Échec de l'installation de l'application», «Un profil d'approvisionnement valide pour cet exécutable est introuvable.».

Je m'en suis débarrassé en allant à: ~/Library/MobileDevice/Provisioning Profileset en trouvant le certificat que Xcode essayait d'utiliser. Ensuite, dans la fenêtre "Périphériques et simulateurs" dans Xcode, j'ai fait un clic droit sur mon appareil, choisissez "Afficher les profils d'approvisionnement" et avec un bouton plus, j'ai ajouté le profil d'approvisionnement à l'appareil là-bas.

Je ne me souviens pas quand je l'ai fait la dernière fois, ça fait des années. Je suppose que Xcode le fait normalement pour nous, mais pour une raison quelconque, il échoue lorsque nous voyons ce message.

karolszafranski
la source
J'avais le même problème et ce travail pour moi. Je vous remercie.
Pat
10

Avec Xcode 6 et un nouvel appareil:

  1. Appuyez sur cmd + shift + 2 pour ouvrir les appareils. ajouter un appareil dans xcode
  2. Appuyez sur le bouton "enregistrer l'appareil". S'il n'y a pas un tel bouton (comme dans la capture d'écran), accédez à developer.apple.com et ajoutez-le manuellement. Copiez l'identifiant dans le champ. ajouter un appareil sur le portail
  3. Allez dans Xcode -> Préférences -> Comptes -> Double-cliquez sur votre compte -> Appuyez sur le petit bouton d'actualisation en bas à gauche pour actualiser les profils actualiser les profils
  4. Accédez à Signature de code et définissez les nouveaux profils. définir des profils
Zeiteisen
la source
N'oubliez pas de définir le Provisioning Profilesur Automatique ou sur le profil spécifique si vous savez de quel il s'agit, sinon vous xCodegérerez la sélection du profil correct.
Alex Cio
Dans mon cas, je devais confirmer l'acceptation des mêmes appareils pour une nouvelle année de licence de développeur, puis supprimer les profils d'approvisionnement et les télécharger à nouveau.
Dmitry
7

Nous pouvons essayer ceci: cela a résolu mon problème. Vous devez réinitialiser le profil pour lequel l'ID de votre appareil a été ajouté dans votre zone membre d'Apple.com. .entrez la description de l'image ici

Vinod Joshi
la source
6

En supposant que votre certificat de développement et de distribution soit correctement installé:

Sous Projet, votre identité de signature de code principale doit être le profil de développeur de cette application.

Sous Cibles, votre identité de signature de code principale doit être le profil de distribution de cette application, sauf que vous devez changer Débogage> Tout SDK iOS en votre profil de développement ... et vous assurer que Version> Tout SDK iOS est votre profil de distribution. Cela devrait être construit et exécuté sur votre téléphone provisionné et archivé sans aucun avertissement de code.

La seule chose qui a fonctionné pour moi lorsque mon téléphone est tombé en panne et j'ai dû le restaurer à partir d'une image iTunes précédente.

M Jesse
la source
6

Cette solution a fonctionné pour moi

  1. Allez dans Xcode -> Préférences -> Compte.
  2. Dans la section des profils d'approvisionnement, cliquez avec le bouton droit et ouvrez avec le Finder.
  3. Supprimez tous les profils d'application des accès du dossier des profils d'approvisionnement.
  4. Enfin, revenez à Xcode et cliquez sur le bouton Actualiser.

J'espère que ça aide!

SE
la source
des informations supplémentaires, si c'est le seul projet en cours affecté, il vous suffit de supprimer le fichier d'approvisionnement associé, il est supposé avoir le même nom que le nom de votre projet.
Bhimbim
4

J'ai eu le même problème. ce que j'ai fait est: 1. nettoyer la cible 2. quitter le xcode 3. redémarrer xcode 4. reconstruire.
et ça a marché.

Emmy
la source
Pareil ici. Un redémarrage était tout ce dont j'avais besoin.
Roshambo
3

Une autre cause (vérifiée):

  1. Apple a un bug majeur dans Xcode remontant à la version 3.x, où il écrase comme par magie le trousseau OS X avec un faux trousseau à l'intérieur de Xcode, réinstallant les certificats (et les clés privées!) Que vous avez déjà supprimés

  2. ... donc, si vous avez installé "nouveau cert" et rien d'autre, Xcode entrera parfois dans une boucle infinie où il continuera également à installer "vieux cert" (qui n'existe nulle part sauf à l'intérieur de XCode!).

  3. ... et à cause d'un autre bogue dans Xcode (non corrigé depuis plus de 3 ans maintenant ...), Xcode sélectionne parfois automatiquement le "plus vieux cert que je puisse trouver" (ce qui, par définition, est incorrect - je pense que quelqu'un chez Apple s'est mélangé entre "le plus ancien" et "le plus récent" :()

  4. ... et même si vous avez sélectionné le profil d'approvisionnement approprié, Xcode envoie l '"ancien" profil d'approvisionnement à l'appareil, puis signe avec le "nouveau" profil, provoquant cette erreur

Solution: vous devez dés-FUBAR Xcode FUBAR de votre trousseau.

C'est plus difficile qu'il n'y paraît (il y a plusieurs messages SO sur ce sujet) - cela implique plusieurs redémarrages de votre machine, supprimant la clé à chaque fois.

Finalement, Xcode abandonne la corruption de votre système d'exploitation et accepte la réalité avec laquelle vous le présentez :).

Adam
la source
OK - après d'innombrables heures de lecture de forums, d'aide Apple et de bricolage, je suis d'accord: XCode est le coupable
AlexVPerl
3

Dans mon cas, un fichier de provisioning valide est dû au fait que je n'ai pas ajouté le périphérique au fichier de provisioning même.

BabyPanda
la source
3

Changer le profil d'approvisionnement en automatique puis en cours d'exécution a invité Xcode à "résoudre" le problème. J'ai ensuite retrouvé mon profil d'approvisionnement d'origine et tout s'est bien passé.

Octet épique
la source
3

Eu le même problème. Ma solution était très simple. J'ai vérifié si j'avais l'UDID de mon appareil dans developer.apple.com et qu'il était absent. Après l'avoir ajouté, il commence à fonctionner. Il est très ennuyeux que les développeurs d'Apple donnent l'erreur «Un profil d'approvisionnement valide pour cet exécutable n'a pas été trouvé» au lieu de «UDID introuvable». En fait, je l'ai mentionné en premier dans XCode 6 ...

Dmitriy Kalachniuk
la source
2

Dans mon cas, c'était le problème lorsque j'ai configuré mon temps manuellement deux mois plus tôt sur mon iPhone. Mais quand j'ai changé pour régler l'heure automatiquement, cela a bien fonctionné.

Setting-> General-> Date & Time->set time automatically

Si cela ne fonctionne pas, le temps défini automatiquement sur Mac et iPhone fonctionnera correctement.

Xcodian Solangi
la source
1

Supprimez le certificat, les profils et recréez-le. Installez-le. C'est la meilleure soultion.

Vaibhav Tekam
la source
1

D'après mon expérience, ce problème se produit si vous essayez de construire sur un appareil qui n'est pas enregistré dans votre centre de développement ou qui n'est pas activé dans le profil d'approvisionnement que vous utilisez.

1) Ajoutez l'appareil au centre de développement. Dans XCode 5, vous trouverez toujours un bouton "ajouter au centre des membres" dans la fenêtre Organiseur. Dans XCode 6, je suggère de copier l'ID de l'appareil et de l'ajouter manuellement à la section des appareils de votre centre des membres.

2) Modifiez le profil d'approvisionnement que vous utilisez pour inclure l'appareil que vous venez d'ajouter. Enregistrez et synchronisez les profils d'approvisionnement à partir de XCode.

Propre, et c'est allumé.

Dodgson86
la source
1

L'une des causes pourrait être votre "projet => Paramètres de construction => Signature => Équipe de développement" est différent de votre "cible => Paramètres de construction => Signature => Équipe de développement", il suffit de les rendre identiques

Arrêt
la source
0

J'avais un certificat qui a expiré (ce qui a généré l'erreur).
Étape 1. Accédez à developer.apple.com, connectez-vous et accédez au portail de provisionnement IOS

Étape 2. Accédez aux certificats (qui sont maintenant vides) et suivez les instructions répertoriées pour créer un nouveau certificat (ouvrez le trousseau sur votre ordinateur, créez une demande de signature, enregistrez-le sur le disque, téléchargez-le sur Apple)

Étape 3. Téléchargez et installez les fichiers créés par apple sur votre trousseau

Étape 4. Problème: tous vos profils de provisioning précédents étaient associés à votre ancien certificat, vous devez donc revenir à developer.apple.com-> IOS Provising Portal-> Provisioning Profiles et «modifier» chaque profil qui vous intéresse. Vous verrez que votre identité n'est plus associée au profil, il vous suffit donc de cocher la case

Étape 5. Téléchargez tous les profils que vous avez modifiés

Étape 6. Branchez votre téléphone et faites glisser et déposez le fichier .mobileprovision sur l'icône xcode dans la barre de dock pour les installer sur l'appareil

user353877
la source
0

J'ai vu ce problème car j'avais obtenu un nouveau Mac et j'utilisais toujours mon ancien certificat d'ordinateur. J'avais créé un nouveau certificat pour le nouveau Mac, mais j'avais les deux certificats dans mon trousseau.

Dans l'Organiseur, le profil a averti que "XCode n'a pas pu trouver une paire clé privée / certificat valide pour ce profil dans votre trousseau" même si l'ancien certificat existait dans mon trousseau.

La solution était de supprimer l'ancien certificat de mon trousseau et de supprimer / révoquer tous les profils qui utilisaient cet ancien certificat. Créez ensuite un nouveau profil avec le nouveau certificat et utilisez-le.

J'espère que cela t'aides!

paiego
la source
0

Amener une application de Xcode 3 à 4.3 J'ai trouvé que le nom et l'identifiant de l'ensemble devaient être définis pour correspondre à l'AppId. Si tout le reste échoue, donnez-lui un tourbillon.

abeille
la source
0

J'ai rencontré le même problème, il peut également y avoir d'autres raisons:

While testing i set my date to some future date and profile got expired. As result this issue was generated.

But i solved by setting date of iphone to current date as a result profile was not expired. 
Paresh Navadiya
la source
0

Je compile mon application dans Adobe Air pour iOS, pas dans Xcode. J'essayais de copier le .ipa à l'aide d'iTunes et j'ai reçu un mystérieux message "Erreur d'installation de l'application". Ce n'est que lorsque j'ai utilisé l'utilitaire de configuration iPhone (iCU) que j'ai reçu le vrai message d'erreur.

Le problème était que je compilais l'application avec un profil d'approvisionnement pour une distribution ad hoc et un certificat pour le développement . Je n'ai pas compris qu'il existe 2 types de certificats et 2 types de profils d'approvisionnement. Il y en a un pour le développement et un pour la distribution. S'ils ne correspondent pas ... alors vous obtenez ce message d'erreur. C'est évident une fois que vous le comprenez ...

La solution consistait à télécharger le certificat de distribution (.cer), à double-cliquer pour l'ouvrir dans le trousseau et à l'exporter directement en P12 depuis KC. Utilisez ensuite ce certificat de distribution P12 dans les paramètres de publication (Flash IDE ou Flash Builder), et utilisez également le profil d'approvisionnement utilisé pour la distribution ad hoc (.mobileprovision). Enfin, installez enfin le profil d'approvisionnement et le fichier .ipa à l'aide de l'utilitaire de configuration iPhone.

Ça l'a fait pour moi.

Jetée
la source
0

Dans mon cas, mon profil d'approvisionnement n'était pas valide, car Apple a modifié certains de ses termes et conditions. Pour résoudre le problème, je devais

  1. supprimer le profil précédent.
  2. J'ai dû accepter les termes et conditions de ce site Web d'Apple.
Siddhartha Saif
la source
0

Cliquez sur votre application dans Xcode sous cibles. (Sous le projet.) Ici vous voyez les informations récapitulatives, les paramètres de construction, les phases de construction, les règles de construction.

Allez dans Paramètres de construction. Descendez à la signature de code.

Vous voyez que vous avez deux champs Debug et Release. Vous avez le choix entre deux profils dans chacun de ces domaines, Distribution et développement.

Laissez la distribution être celle du champ Release. Laissez Developing être celui du champ Debug.

Faire cela a résolu ce problème et laisser ce message d'erreur disparaître. Je peux maintenant exécuter correctement mon application.

coolcool1994
la source
0

J'ai aussi eu ce problème avec Xcode 5.0.1. Un beau jour, l'application ne voulait tout simplement pas être installée sur l'appareil sur lequel elle était installée il y a cinq minutes sans aucun problème.

J'ai essayé de nettoyer les paramètres, de supprimer les données dérivées, de recréer des profils d'approvisionnement, de signer avec un autre certificat / profil, de supprimer l'appareil de l'organiseur, etc.

Enfin, j'ai réinitialisé le contenu et les paramètres de mon appareil et j'ai réussi à créer mon projet avec d'anciens profils, certificats et ID de bundle.

Alexander Sosnovshchenko
la source