web-dev-qa-db-fra.com

Xcode 10: aucun profil d'approvisionnement valide pour cet exécutable n'a été trouvé

Depuis hier, le message d'erreur suivant s'affiche lors de la tentative d'exécution d'une application sur mon appareil: "Un profil d'approvisionnement valide pour cet exécutable n'a pas été trouvé.". C’est après la mise à jour vers Xcode 10. La construction avec Xcode 9 la semaine dernière a fonctionné sans problème.

J'ai vérifié les autres discussions sur l'erreur, mais aucune des solutions ne fonctionne.

Le problème ne se limite pas à un seul projet sur lequel j'ai travaillé car il concerne plusieurs équipes de signataires différentes.

Jusqu'à présent, j'ai essayé ce qui suit:

  • Projet de nettoyage

  • Nettoyage des données dérivées

  • Désinstallez Xcode, supprimez toutes les préférences et les fichiers qui s'y rapportent.

  • Installer Xcode sur un Mac complètement différent

  • Test avec différents appareils

  • Désactiver le périphérique dans le profil de développeur et laisser Xcode le réactiver.

  • Supprimer tous les certificats dans le portail des développeurs et les recréer

  • Décocher et revérifier "Gérer automatiquement la signature"

  • Supprimer le profil de provisioning et laisser Xcode le recréer

  • Création d'un profil d'approvisionnement manuel dans le profil de développeur

Le projet ne contient aucun test, il ne peut donc y avoir de problème de mauvais paramétrage de la signature sur cette cible. Date/heure est définie sur Automatique

Une chose à noter est qu'aucun profil d'approvisionnement n'est répertorié ici, à l'exception du manuel que j'ai créé: https://developer.Apple.com/account/ios/profile/

Je m'attendrais à ce que le xcode généré apparaisse comme pour tous les autres clients.

Vous trouverez ci-dessous les paramètres de signature que j'utilise actuellement.

provisioning profile settings

Je n'ai pas encore essayé de rétrograder Xcode vers une version plus ancienne pour voir si cela fonctionnait. Autre que cela, je n'ai aucune idée de ce qu'il faut essayer ensuite.

173
Daniel Andersson

Je me débattais avec ça aujourd'hui, c'était super frustrant. Pour l'instant, allez simplement dans "File"> "Project Settings..." (ou dans certains cas "Workspace Settings..."), puis sélectionnez "Legacy Build System" dans la liste déroulante "Build System".

415
Stephen

@Stephen a résolu ce problème pour moi. J'ai juste besoin d'aller -> Fichier -> Paramètres de Worspace -> Paramètres de construction (changer ici en "Système de construction hérité") enter image description here

enter image description here

82
Vinícius Todesco

J'ai eu le même problème et j'ai passé des heures à chercher une réponse, à supprimer des profils, à nettoyer un projet, etc.

Avez-vous distribué votre application? Vous devez revenir à votre profil de développeur, mais pas dans Général sous les paramètres du projet, mais dans Paramètres de construction.

Sous Signing, examinez votre identité de signature de code .

Assurez-vous que vos deux versions Debug et Release sont définies comme étant votre développeur iOS et non Distribution iOS; ou votre profil iOS Developer Provisioning, s'il n'est pas défini sur les valeurs automatiques.

Il en va de même avec le profil de provisioning. Ce devrait être votre profil en développement, et non votre profil de distribution. enter image description here

J'espère que cela aidera les futurs développeurs dans le besoin.

30
Rickard Elimää

J'ai essayé toutes les solutions ci-dessus.

Cependant, dans mon cas, après des heures de maux de tête, c'était à cause du Test Project ne dispose pas d'un compte valide pour approvisionner la signature. Après avoir sélectionné une équipe à approvisionner dans le projet test avec signature gérée automatiquement. Ce problème est parti.

28
Chen

Utiliser un nouveau dossier de construction (commande + Maj + K) et une application de reconstruction peuvent résoudre rapidement ce problème. Cependant, le temps de génération augmentera depuis que vous avez nettoyé le dossier de génération.

19
Jerome Li

Pour notre équipe, rien n'a aidé. Nous avons passé quelques jours à essayer chaque étape mentionnée ci-dessus dans les réponses et les commentaires. Nous avons essayé avec XCode 10 et même XCode 9.2 sur une application, qui est sur l'App Store depuis de nombreuses années.

Le problème a commencé après la mise à niveau vers MacOS Mojave. Malheureusement, retourner à HighSierra n'a pas aidé à ce moment-là.

Au moins, nous avons à nouveau pu effectuer une expédition dans l'App Store après avoir créé un nouveau certificat et un nouveau profil d'approvisionnement. Mais nous ne sommes toujours pas en mesure de tester notre application en mode release sur un périphérique réel, ce qui est nécessaire pour tester les achats InApp.

En bref: l'archivage et la soumission fonctionnent bien, ne pas fonctionner sur un périphérique réel!

Plusieurs développeurs, plusieurs appareils, macbooks, versions XCode ....

À la fin, nous avons dû changer le AppID pour pouvoir à nouveau tester sur un périphérique réel.

Par conséquent, nous exécutons maintenant deux projets différents: l’un pour l’envoi à TestFlight/AppStore avec le véritable AppID et l’autre pour le développement avec un autre AppID.

Bien que cela ne se produise que sur UNE seule application de notre société et pas toutes les autres, nous nous attendons à rencontrer des problèmes similaires à l'avenir, car les outils de développement d'Apple ne font qu'empirer les choses ...

4
delete

Donc, ce ne sera pas le cas pour tout le monde mais je pensais le poster ici de toute façon car il ne semble pas y avoir de réponse à ce sujet.

Dans mon cas, je travaillais sur une application en cours de développement dans ReactNative. Mon problème était que, même si ma signature était correcte sur la cible principale de l'application, aucune cible n'avait été appliquée à la cible de test.
Pour quelque raison que ce soit React Native, votre cible d’application et votre cible de test doivent être signées afin d’installer l’application sur un appareil.
Cela est spécifié dans la documentation officielle sur construction pour périphérique , mais c’est le seul cas où j’ai jamais vu où la cible de test est construite à côté de l’application pour autre chose que les tests.

Pour signer votre cible de test, accédez aux paramètres de votre projet en ouvrant le navigateur de projet (1) et sélectionnez votre projet en haut.

Dans l'éditeur principal, sélectionnez la cible principale de votre application sous Cibles (doit porter le même nom que votre projet) et assurez-vous que la signature est correcte, puis sélectionnez la cible de test (probablement juste en dessous de la cible principale de votre application, il devrait s'agir du même nom avec Tests. ci-joint) et assurez-vous qu’il est signé de la même manière.

Reconstruisez votre application et elle devrait maintenant s'installer correctement.

Le mérite en revient à Leo Lei, sa réponse ici m'a évité beaucoup de maux de tête: https://stackoverflow.com/a/48657358/732844

Soit dit en passant, si quelqu'un sait pourquoi la réaction native exige que votre cible de test soit construite en même temps que la cible de votre application, est-ce qu'ils peuvent me le faire savoir? La seule raison pour laquelle je peux penser est de rationaliser l'interface afin que Rea puisse créer une seule application et exécuter à la fois l'exécution et les tests sans avoir à reconstruire, mais je ne fais que deviner avec celle-là.

2
Stewart Thomson

Avez-vous peut-être changé votre appareil en développement? C'est ce qui m'est arrivé lorsque j'ai acheté un nouvel iPhone et que je lui ai donné le même nom que mon ancien appareil. Une version propre a cependant résolu le problème.

1

Dans mon cas, voici les étapes pour résoudre les problèmes:

  1. Allez dans ce dossier: ~/Library/MobileDevice/Provisioning Profiles/
  2. Supprimer tout le profil d'approvisionnement
  3. Dans Xcode 10, menu> Produit> Nettoyer le dossier de construction
  4. Dans Xcode 10, menu> Xcode> Préférences> Compte> Télécharger les profils manuels.
  5. Dans Xcode 10, menu> Produit> Construire/Archiver

La raison ci-dessus consiste à supprimer les anciens profils de provisioning qui ont perturbé le processus de construction.

1
Raptor

Je me débattais avec le même problème et la solution dans mon cas était de vous connecter au (x) compte (s) développeur (s). Après la mise à jour vers Xcode 10, tous les comptes ont été déconnectés.

Utilisez le menu "Xcode -> Préférences ... -> Comptes" et assurez-vous que tous les comptes que vous utilisez sont connectés afin que les profils de provisioning soient accessibles.

1
Alex Alexiev

Même problème rencontré, nous avons eu plusieurs configurations dans le projet Xcode, par exemple Debug-Staging, Debug-Production. Nous avons ensuite unifié ceux-ci et utilisé une seule configuration Debug. Mais l'ancien (qui n'existe plus) était bloqué dans le schéma de la phase d'exécution. Ainsi, une fois que vous avez essayé de l'exécuter, Xcode vous a montré ce message. Ce qui est logique puisque les profils de provisioning sont configurés dans les paramètres de construction en fonction de la configuration.

Donc, le schéma exécuté ressemblait à ceci:

Incorrect target scheme

Alors que les configurations de projet étaient configurées comme ceci.

Project configurations

Changer le schéma pour utiliser la configuration qui est toujours disponible dans le projet est ce qui a résolu ce problème pour moi.

0
libec

Après avoir épuisé la majeure partie de ma solution, j’ai trouvé ce qui me permettait de le faire fonctionner sans aucun problème. Il est résolu par le lien suivant: developer.Apple.com puis account puis Certificates, identifiers & profiles et je clique sur All du lien sous Devices, puis j’ajoute un nouvel appareil.

vous devez ensuite définir le nom du périphérique, ainsi que uuid, puis l’enregistrer. Allez dans xcode et nettoyez le cache, la construction et tout son travail correctement.

Note 1: assurez-vous que votre équipe est en vérité.

Remarque 2: vous pouvez vous connecter en connectant votre appareil à votre appareil mac, et cliquez sur iTunes, puis appuyez sur l'étiquette de sécurité pour afficher l'UUID.

Ce qui cette réponse est utile aussi.

Ce problème se produisait dans Xcode 10.3 après avoir basculé sur la cible de test d'unité XCTest, puis sur la cible d'exécution du projet.

Il s'avère que j'avais sélectionné différentes équipes dans mon profil d'approvisionnement pour chaque cible.

Réparer :

  • Dossier de construction propre
  • Assurez-vous que toutes les cibles peuvent utiliser la même équipe. Voir Signature de profil sous l'onglet Général.
  • Si vous n'utilisez pas la même équipe pour toutes les cibles, nettoyez-le avant de passer à une cible de construction avec

    équipe différente sélectionnée.

0
David Mayes

Assurez-vous:

1) Ayez un profil d'approvisionnement enregistré pour votre appareil.

2) Le périphérique doit être ajouté au profil de développement et mis à jour.

Si vous rencontrez toujours des problèmes, vérifiez les paramètres de construction de votre cible.

Assurez-vous:

1) CODE_SIGNING_REQUIRED dans User-Defined est réglé sur YES.

enter image description here

2) Vérifiez les options Signing sont correctes. Si le problème persiste, passez aux réglages manuels plutôt qu’automatiquement.

0
Andrei Calazans

Pour moi, même si le certificat de distribution et le profil d'approvisionnement étaient disponibles pour Xcode, la sélection de la gestion automatique de la signature au cours du processus de distribution provoquait son échec. J'ai fait ce qui suit. Comme indiqué précédemment, j'ai créé un nouveau certificat de distribution et un nouveau profil d'approvisionnement, puis, au cours du processus de distribution, j'ai sélectionné manuellement le profil de certificat et d'approvisionnement et Voilaaaa. Assurez-vous également que je suis sur la dernière version 10.1.

0
Pushparaj Samant

J'étais en train d'ouvrir le projet xcodej ... J'ai essayé avec un fichier d'espace de travail et cela fonctionnait.

Au moins ça résolvait un de mes problèmes haha

0
Matias Seguel

J'avais suivi toutes les étapes ci-dessus mais ce n'est pas un travail finalement. J'ai été créé en double cible et cela fonctionne bien. Je ne sais pas ce qui ne va pas peut-être un problème de mémoire cache

enter image description here

0
Arjun Patel

Il semble que Apple ait corrigé ce bogue dans Xcode 10.2 beta 2 Release.

https://developer.Apple.com/documentation/xcode_release_notes/xcode_10_2_beta_2_release_notes

Problèmes de signature et de distribution résolus

Lorsque vous créez une archive d’une application macOS et que vous utilisez un certificat de signature d’identifiant de développeur, Xcode inclut un horodatage sécurisé dans la signature de l’archive. Par conséquent, vous pouvez désormais soumettre une application archivée au service de notaire d’Apple avec xcrun altool sans avoir besoin de la re-signer avec un horodatage. (44952627)

Lors de la création d’une archive d’une application macOS, Xcode n’injecte plus le droit com.Apple.security.get-task-allow dans la signature de l’application. Par conséquent, vous pouvez désormais soumettre une application archivée au service de notaire d’Apple à l’aide de xcrun altool sans devoir supprimer au préalable ce droit. (44952574)

Correction d'un problème en raison duquel le flux de travail de la distribution signalait des informations inexactes ou manquantes concernant le certificat de signature, le profil d'approvisionnement et les droits utilisés lors de l'exportation ou du téléchargement d'une application. (45761196)

Problème résolu: les fichiers .ipa amincis n'étaient pas signés lorsqu'ils étaient exportés à partir de l'Organiseur. (45761101)

La version Xcode 10.2 beta 2 peut être téléchargée ici: https://developer.Apple.com/download/

0
Artem Shevtsov

Dans mon cas, où rien d'autre n'a aidé, j'ai fait ce qui suit:

  1. changer le AppID pour un nouveau
  2. XCode a généré automatiquement de nouveaux profils d'approvisionnement
  3. exécuter l'application sur un appareil réel -> maintenant cela a fonctionné
  4. reconvertir l'AppID à l'identifiant d'origine
  5. travaux

Avant cela, j'ai essayé chaque étape mentionnée ici. Mais seulement cela a aidé.

0
itinance

ou modifiez également les paramètres de votre espace de travail par utilisateur, ainsi que les paramètres de votre espace de travail partagé, en un nouveau système de construction comme ceci

0
Neeraj Soni

J'ai essayé toutes les réponses ci-dessus et je n'ai pas eu de chance. Après cela, je redémarre mon iPhone et le problème semble avoir disparu. Je sais que c'est tellement stupide mais ça a fonctionné. Les réponses ci-dessus permettent probablement de résoudre le problème, mais sinon, essayez de redémarrer votre appareil iOS.

0
emin deniz

Vous avez juste besoin de changer votre équipe. Dans mon cas cela a fonctionné

0
SwiftNewling