web-dev-qa-db-fra.com

Un profil d'approvisionnement valide correspondant à l'identificateur de l'application est introuvable.

Cela a déjà été demandé, mais les réponses aux questions précédentes ne résolvent pas mon problème.

J'essaie de créer une application simple Hello World appelée (CalculatorBrain) à partir des cours iTunes U de Stanford. Je peux bien l'exécuter dans le simulateur, mais j'aimerais pouvoir l'obtenir sur mon iPhone 4S.

Je synchronise mon iPhone 4S via iTunes sur mon ordinateur Windows. Toujours avoir. Je me suis dit que je devrais énumérer ce détail.

Quoi qu'il en soit, revenons à mon Macbook (Mountain Lion). J'utilise le dernier XCode 4.6.2 (4H1003) et mon iPhone est aussi le plus récent, 6.1.3 je crois.

Je suis allé sur le portail de provisioning sur la page des développeurs Apple. J'ai ajouté mon 4S. Je l'ai appelé JohnSmith et lui ai donné le code UDID du téléphone. 

En Xcode, j'ai ouvert l'Organiseur, Périphériques est mis en surbrillance par défaut. J'ai mis le code d'authentification dans mon iPhone et je l'ai branché sur mon Macbook. Les appareils trouvent mon iPhone. Si je clique sur Profils de provisioning et que j'essaie d'ajouter un périphérique à un portail de provisioning, un message «Un périphérique avec un numéro existe déjà dans cette équipe». Génial. Je sais que c'est ajouté à coup sûr alors. Toutes les bonnes nouvelles jusqu'à présent.

Dans mon application Hello World, mon identifiant de paquet est CalculatorBrain-Info.plist: "com.JohnSmith.CalculatorBrain". Le nom d'affichage de l'ensemble est "$ {PRODUCT_NAME}" et le fichier exécutable est "$ {EXECUTABLE_NAME}" si cela est important.

Dans le navigateur, si je surligne mon projet et que je fais apparaître les paramètres de construction, sous Identité de signature de code, je reçois les options ...

Ne signez pas le code

Sélecteur de profil automatique - Développeur iPhone - Distribution iPhone

Identités sans profils d'approvisionnement - Développeur iPhone: John Smith (R ............ K) - Distribution iPhone: John Smith (Y .......... ... 5)

Autre...

J'ai essayé tout cela. Je suppose que je suis supposé utiliser l'iPhone Developer: John Smith one ... mais cela signifie que c'est une identité sans profils de provisioning.

Que se passe t-il ici? Que dois-je faire pour que cela fonctionne?

12
chris P

Selon votre description, il semble que l'élément manquant soit de revenir à l'outil "Certificats, identifiants et profils", de générer un profil de provisioning de développement pour l'appID de votre application HelloWorld, puis d'installer ce profil sur votre développement machine. A un niveau élevé, il est composé des étapes suivantes:

  1. Localisez le AppID de votre projet dans Xcode.
  2. Vérifiez que vous avez configuré cet AppID dans 'Certificats, identificateurs et profils'.
  3. Créez un profil d'approvisionnement de développement pour cet AppId, votre certificat de développement et un ou plusieurs périphériques de test enregistrés.
  4. Téléchargez et installez le profil d'approvisionnement dans Xcode.
  5. Configurez votre projet avec la signature de code à l'aide de ce profil et de l'identité de signature de code liée.
  6. Construire à l'appareil!

L'élément de configuration de construction 'Code Signing Identity' que vous avez mentionné dépend en grande partie des paramètres de votre projet ainsi que des profils de provisioning disponibles sur votre ordinateur de développement. J'ai récemment répondu à une question liée de manière tangentielle 'Qu'est-ce qu'une identité de signature de code?' cela peut être utile pour voir quelles informations Code Signing utilise et comment vous pouvez vérifier que vous avez configuré votre machine de développement pour pouvoir signer votre projet par code.

... et maintenant, passons à des HOWTO plus spécifiques pour vous aider à résoudre votre question de signature de code:

Localisation de l'AppID du projet

Le code AppID définit de manière unique une application dans l'écosystème iOS et constitue l'une des choses que vous créez en premier lieu lors du démarrage d'un nouveau projet Xcode. Cet AppID est ce que vous devez inscrire dans l'outil "Certificats, identificateurs et profils" pour commencer à utiliser le provisioning.

Xcode AppId Setting

  1. Dans le Navigateur de projet (CMD + 1), cliquez sur le nom de votre projet (probablement "CalculatorBrain"). Cela présentera les paramètres du projet.
  2. Sélectionnez [Votre nom de projet]> Onglet Résumé, comme indiqué dans la capture d'écran ci-dessus (MyiOSApplication).
  3. Votre identifiant d'application iOS est présenté dans le champ "Identifiant de l'ensemble". Accrochez une copie de cette chaîne, vous en aurez besoin ensuite.

Vérifier (ou installer) le AppID

  1. Accédez à http://developer.Apple.com/ios et accédez à l'outil "Certificats, identifiants et profils".
  2. Une fois connecté, sélectionnez «Identifiants».
  3. Vérifiez que l’appID que vous avez trouvé dans la section précédente est présent dans la liste des identificateurs d’application. Si c'est le cas, notez le nom de l'ID de l'application et passez à la section suivante, sinon ...
  4. Cliquez sur le bouton "Ajouter" (Plus) dans le coin supérieur droit, attribuez un nom à cet ID d'application (vous pouvez le choisir, uniquement s'il n'a pas de caractères spéciaux.)
  5. Faites défiler jusqu'au bas de la page et collez une copie de votre ID d'application de la section précédente dans le champ "ID de l'ensemble". sous 'ID d'application explicite'.
  6. Cliquez sur 'Continuer'.

Notez que l’appID doit être unique dans l’écosystème iOS - vous risquez d’obtenir une erreur si l’appID que vous avez sélectionné est déjà utilisé. Si tel est le cas, remplacez votre «ID de paquet» par quelque chose d'unique - veillez simplement à mettre à jour le paramètre «ID de paquet» dans votre projet Xcode pour qu'il corresponde à ce que vous avez choisi.

Création d'un profil d'approvisionnement de développement

Maintenant que l'ID de l'application est enregistré, vous êtes maintenant prêt à créer un profil d'approvisionnement de développement reliant votre ID d'application, votre certificat de développement et vos ID de périphérique de test.

  1. Dans l'outil "Certificats, identités, profils", accédez à "Profils de provisioning".
  2. Cliquez sur le bouton 'Ajouter' (Plus) dans le coin supérieur droit.
  3. Sélectionnez "Développement d'applications iOS" à l'étape "Sélectionner un type", puis cliquez sur "Continuer".
  4. Sélectionnez votre identifiant d'application dans la liste déroulante des identifiants d'application, puis cliquez sur "Continuer".
  5. Cochez la case en regard de votre certificat de développement, puis cliquez sur "Continuer".
  6. Cochez la case en regard du ou des périphériques de test que vous souhaitez autoriser à installer cette application, puis cliquez sur "Continuer".
  7. Saisissez un nom de profil (en omettant de nouveau les caractères spéciaux), puis cliquez sur "Générer".

Télécharger et installer le profil d'approvisionnement

Une fois le profil de provisioning généré, l’outil vous fournira un lien pour pouvoir télécharger

  1. Téléchargez le profil d'approvisionnement en cliquant sur le lien "Télécharger".
  2. Faites glisser le profil d'approvisionnement depuis votre emplacement de téléchargement et déposez-le sur l'icône du Dock Xcode ou double-cliquez dessus pour l'ouvrir.

Configurer l'identité de signature de code

On dirait que vous savez déjà où cela se trouve, mais juste au cas où:

  1. Dans le Navigateur de projet (CMD + 1), cliquez sur le nom de votre projet (probablement "CalculatorBrain"). Cela présentera les paramètres du projet.
  2. Sélectionnez [Votre nom de projet]> Onglet Paramètres de construction.
  3. Faites défiler jusqu'à l'élément «Identité de signature de code».

En théorie, vous voudriez utiliser l'option 'Sélecteur de profil automatique' qui tentera de faire correspondre votre AppID à un profil de provisioning installé, mais vous pouvez également faire défiler la liste et choisir un mappage spécifique de Bundle ID/AppId avec un certificat iOS.En outre, mon propre Xcode ne semble pas toujours prendre en compte les modifications apportées aux profils d'approvisionnement récemment installés. Il est difficile de savoir s'il s'agit simplement d'un caprice de ma propre installation Xcode ou d'un bogue dans Xcode. Quoi qu'il en soit, quitter et relancer Xcode semble déclencher une réindexation/actualisation des profils.

Quoi qu'il en soit, sélectionnez l'option qui correspond à votre AppId/BundleId et à votre certificat de développeur.

En supposant que le problème soit un profil de provisioning manquant/incomplet/expiré, cela devrait vous aider à vous mettre en route. Si ce n'est pas le cas, nous devrons analyser d'autres problèmes de paramètres ou de certificats susceptibles de déclencher votre opération de signature de code.

Assuming the problem was a missing/incomplete/expired Provisioning Profile, then this should help get you up and running. If not, we'll have to Dig into other potential settings or certificates issues that could be tripping up your Code Signature operation.

39
Bryan Musial

J'ai eu très genre de problème, essayé chaque option à ceux de la signature de code et la solution réelle à la mienne était la suivante: - Xcode redémarré. - "Actualiser à partir du portail de développeur" Ensuite, il suffit de "Définir le schéma actif" sur "iPhone (Petri)" à côté des boutons Exécuter et Arrêter.

6
Petri

Assurez-vous que les cibles sont cochées au lieu de projets. 

make sure Targets is selected

1
Asfanur

enter image description hereDans mon cas, l'appareil dispose de 3 profils de provision du même nom. Au cours du développement, j'ai mis à jour le profil de provision à quelques reprises et chaque fois qu'un nouveau profil mis à jour était ajouté au périphérique sans supprimer l'ancien. Donc, xcode a recherché le premier profil de provision qui était faux à ce moment-là et jeté une erreur à la face de moi…

  1. Ouvrir la fenêtre "Périphériques" (Cmd + Shif + 2)
  2. Recherchez votre appareil et sélectionnez-le
  3. Dans le coin inférieur gauche, appuyez sur le bouton "Paramètres". 
  4. Appuyez sur "Profils de provision"
  5. Rechercher des doublons. J'ai trouvé 3 éléments de profils avec le même nom
  6. supprimé tout sauf le dernier
1
Nikolay Shubenkov