web-dev-qa-db-fra.com

Erreur de signe de code avec Xcode 3.2

J'avais un environnement de construction entièrement fonctionnel avant de passer à l'iPhone OS 3.1 et Xcode 3.2. Maintenant, lorsque j'essaie de créer un build, j'obtiens ce qui suit:

Erreur de signature de code: le profil de provisionnement "Test FooApp" spécifie l'identificateur d'application "no.fooapp.iphoneapp" qui ne correspond pas au paramètre actuel "TGECMYZ3VK.no.fooapp.iphoneapp"

Le problème est que Xcode parvient en quelque sorte à penser que le profil de provisionnement "Test FooApp" spécifie l'identificateur d'application "no.fooapp.iphoneapp", mais ce n'est pas le cas.

Dans l'Organiseur (et sur le site Web du portail des développeurs iPhone), l'identifiant de l'application est correctement vu comme 'TGECMYZ3VK.no.fooapp.iphoneapp'.

De plus, lors de la définition du profil d'approvisionnement dans les options de génération au niveau du projet, Xcode identifie correctement l'identifiant de l'application, mais lorsque je vais sur la cible, je ne peux pas sélectionner de profil d'approvisionnement valide.

Quelle pourrait être la cause de ce problème?

Mise à jour: j'ai essayé de créer un nouveau profil d'approvisionnement, mais toujours pas de chance. J'ai également essayé de simplement changer l'application identifiée dans Info.plist en "no.fooapp.iphoneapp". La construction réussit, mais maintenant j'obtiens une erreur de l'organisateur:

L'exécutable a été signé avec des droits invalides. Les droits spécifiés dans le fichier des droits de signature de code de votre application ne correspondent pas à ceux spécifiés dans votre profil d'approvisionnement. (0xE8008016).

Cela semble raisonnable, car le profil d'approvisionnement a toujours l'identifiant d'application "TGECMYZ3VK.no.fooapp.iphoneapp".

J'ai également vérifié que tous les certificats sont valides dans le trousseau.

Ma question est donc de savoir comment obtenir Xcode pour voir l'identifiant d'application correct?

MISE À JOUR: Comme indiqué ci-dessous, ce qui semble résoudre le problème est la suppression de tous les profils d'approvisionnement, certificats, etc., la création de nouveaux certificats/profils et leur réinstallation. Si quelqu'un a d'autres solutions, il serait le bienvenu. :)

31
quux

Eh bien, comme cela semble être le cas avec beaucoup de ces problèmes de signature de code, la suppression de tous les profils de provisionnement, certificats, etc. et la révocation et la génération de tout se sont révélées faire l'affaire. J'ai même créé un nouvel identifiant de bundle, un identifiant d'application, etc., et maintenant la distribution AdHoc fonctionne à nouveau.

16
quux

J'ai dû supprimer manuellement les profils d'approvisionnement de mon téléphone, puis reconstruire les applications après avoir effectué un "nettoyage de toutes les cibles" dans le menu de génération.

C'est sous Paramètres -> Général -> Profils

Cela m'est arrivé quand j'ai eu un nouveau Mac. Vous le réparerez, ne vous inquiétez pas

21
Justin

Assurez-vous également que vous avez ajouté une référence au nom du fichier de droits d'accès "dist.plist" dans la configuration de votre projet CODE_SIGN_ENTITLEMENTS.

5
user194584

Vérifiez les deux droits de signature de code dans les informations pour la cible de génération et l'application principale - si les droits de signature de code le disent sur l'un ou l'autre, supprimez-le

5
dijipiji

J'ai eu cette même erreur hier. J'ai essayé toutes les différentes procédures de réinitialisation dans les autres réponses sans succès. Finalement, j'ai aussi

  • redémarré mon mac
  • redémarré mon iPhone
  • supprimé tous mes profils d'approvisionnement d'iphone du téléphone à l'aide de XCode
  • supprimé tous les profils de mon mac (~/Library/MobileDevice/Provisioning Profiles pour moi)
  • quoi d'autre? supprimé le dossier de construction, redémarré XCode, installé la mise à jour vers 3.1.2 sdk, sacrifié un poulet.

Et voilà, cela fonctionne maintenant, l'erreur a disparu. C'est un territoire vaudou sérieux.

5
Simon Woodside

Dans XCode, dans le volet "Groupes et fichiers", développez "Cibles" et double-cliquez sur la cible de votre application.

Cela fera apparaître le volet d'informations pour votre cible. Dans la section "Build", vérifiez la section "signature de code" pour tous les anciens profils. Cela m'est arrivé plusieurs fois, en particulier après une mise à niveau vers une nouvelle version du sdk et de l'iphone os

4
ennuikiller

Quick Hack si vous êtes sur Xcode 4.3.

Dans Xcode sous Paramètres du projet> MyTarget> onglet Résumé tout en bas, il y a une case à cocher qui dit "Activer les droits". Lorsque je l'ai décochée, cela a fait disparaître l'erreur.

2
neoneye

Après avoir été perplexe pendant un certain temps, j'ai revu les paramètres et découvert que j'avais inversé les entrées "Code Signing Identity" et "Any iPhone OS Device". - L'indice que j'avais sur cet événement a été montré par.

  1. Supprimer tous les profils du téléphone
  2. Build and Go

À ce stade, xcode tente de provisionner le téléphone (appareil)

  1. Examinez le téléphone pour voir quel profil d'approvisionnement a été ajouté.

Comme je préfixe tous mes profils "AdHoc" ou "Développement" ou "AppStore", j'ai immédiatement vu que le processus d'installation mettait un profil de développement sur l'appareil et non un profil AdHoc.

1
Damien Laughton

Dans Resources/Entitlements.plist, il y a un booléen "get-task-allow" si ce n'est pas vérifié, cochez-le ON. Cela a résolu le problème pour moi.

1
maz

Le périphérique ne figure peut-être pas dans la liste. Essayez de modifier votre profil d'approvisionnement.

1
superarts.org

Double-cliquez sur la cible puis sélectionnez l'onglet "Propriétés". Il change le com.yourcompany.${...}.

0
Matt N.

Le problème se trouve dans le fichier "project.pbxproj" situé à l'intérieur du fichier [votre projet] .xcodeproject. Si vous vous sentez courageux, faites un clic droit sur le projet .xcode et affichez le contenu, puis ouvrez "project.pbxproj" avec un éditeur de texte de plan. À l'intérieur, recherchez le chemin offensif et corrigez-le. Dans mon cas, je viens de supprimer tout le chemin et de laisser "Entitlements.plist" et cela a résolu mes problèmes. Je recommande fortement de sauvegarder votre projet .xcode avant de tenter cela.

0
Jamey McElveen

Pour référence, j'ai rencontré le même problème et la suppression de tous mes profils, des certificats existants et de tout de mon lecteur local et du portail de développeur, et la suppression de mes appareils existants et leur réajout (portail de développeur) semblait faire l'affaire.

0
Topher Fangio

Une autre cause est si le périphérique que vous souhaitez installer n'est pas un périphérique approuvé dans le certificat de distribution.

0
George Lambert

Juste pour ajouter une note ici: j'ai rencontré la même erreur (0xE8008016) après avoir remplacé la carte logique de mon Macbook (bien que j'imagine que vous auriez le même problème sur un Mac complètement nouveau), et après des heures à tourner en rond, j'ai réalisé que le portail du programme pour développeurs iPhone avait des certificats distincts pour Développement et Distribution.

Un changement de matériel signifie que vous devez réémettre les deux certificats - j'avais réédité Developer mais pas la distribution. Parce que mon nom n'avait pas changé lorsque mon matériel a changé (et les certificats sont identifiés par le nom du propriétaire), cela a rendu le problème difficile à repérer;) J'espère que cela évite à quelqu'un d'autre ma frustration.

0
Henry Cooke

Parfois, Xcode ne copie pas automatiquement votre profil d'approvisionnement au bon emplacement. Dans mon cas, c'était vrai.

Vérifiez que votre profil d'approvisionnement est dans le répertoire ~/Library/MobileDevice/Provisioning Profiles et si ce n'est pas simplement glisser-déposer, nettoyer et construire

0
PowerAktar