63 votes

L'exécutable a été signé avec des droits non valides

J'ai un problème avec la distribution ad-hoc sur mon iPhone. J'ai développé une application avec le SDK 3.0. J'ai une licence de développeur. J'ai ajouté des certificats et des profils de provisionnement dans mon projet. Il n'y a donc aucun problème.

Mais, lorsque j'essaie d'installer l'application sur mon iPhone, elle compile le projet et affiche ensuite l'erreur : "The executable was signed with invalid entitlements" dans la fenêtre de l'Organisateur. Est-ce que quelque chose m'échappe ? J'ai mis à jour mon iPhone à partir de la version 2.2.1 et j'ai téléchargé le dernier SDK d'Apple.

Veuillez m'aider à résoudre ce problème.

50voto

John Points 1373

Il y a de très bonnes instructions dans le "Programme du portail". Si vous vous connectez à

http://developer.apple.com/iphone

Cliquez ensuite sur Distribution sur la gauche, et cliquez sur le bouton

Création et téléchargement d'un profil de provisionnement de distribution pour la distribution ad hoc

lien en bas de page.

Voici l'élément clé :

Pour la distribution ad hoc, remplissez les champs suivants :

  • Dans le menu Fichier, sélectionnez Nouveau fichier -> iPhone OS -> Code Signing -> Entitlement. Nommez le fichier "Entitlements.plist" et cliquez sur "Terminer". Ceci crée une copie du fichier entitlements par défaut dans le projet.
  • Sélectionnez le nouveau fichier Entitlments.plist et décochez la propriété "get-task-allow". Sauvegardez le fichier Entitlements.plist. (dans Xcode 4, get-task-allow est appelé "Can be debugged" )
  • Sélectionnez la cible et ouvrez l'inspecteur des paramètres de construction. Dans le paramètre de construction "Code Signing Entitlements", saisissez le nom de fichier du nouveau fichier Entitlements.plist, y compris l'extension. Il n'est pas nécessaire de spécifier un chemin d'accès, sauf si vous avez placé le fichier Entitlements.plist ailleurs qu'au niveau supérieur du projet.
  • Cliquez sur "Build". (Remarque : votre binaire doit contenir une icône carrée aplatie de 57x57 pixels. Cette icône est affichée sur l'écran d'accueil de l'iPhone ou de l'iPod touch).

29voto

TTT Points 316

Cette erreur peut également se produire si vous essayez de profiler une application dont le périphérique n'est pas inclus dans le profil de provisionnement.

Assurez-vous que votre appareil est inclus dans le profil de provisionnement de dev que vous souhaitez utiliser. Le message d'erreur est en quelque sorte trompeur. Mes droits sont en fait corrects.

14voto

gumbypp Points 159

J'ai constaté que "get-task-allow" doit être coché pour les builds de développement mais décoché pour les builds de distribution. La manière la plus simple d'accomplir ceci (AFAIK) est d'avoir deux dans votre projet : Entitlements.plist et EntitlementsDebug.plist - et de faire référence au bon fichier dans les paramètres du projet de construction pour les différentes configurations de votre projet.

6voto

snibbe Points 1194

Les droits de signature de code ne sont plus nécessaires pour les constructions Ad Hoc dans Xcode 4 - voir les notes détaillées dans Note technique Apple TN2250

4voto

neil Points 71

Si vous vous trouvez une fois dans la situation où la vérification de "get-task-allow" semble être nécessaire pour déployer votre build de débogage ( !) sur votre téléphone, vérifiez ceci :

a) Vérifiez le paramètre de construction. Il ne doit pas y avoir d'entrée dans "Code Signing Entitlements" pour Debug. b) Supprimez temporairement Entitlements.plist et construisez votre version de débogage. S'il se plaint d'un Entitlements.plist manquant, alors vous avez probablement la même situation, que j'ai dû combattre aujourd'hui. c) Reconstruisez avec Entitlements.plist et activez "get-task-allow". Si cela fonctionne maintenant, vous avez probablement le même problème :

Après avoir essayé de nouveaux profils, je n'ai pas pu déployer ma version Debug sur le téléphone. AdHoc était bien. J'ai vérifié a) - vide... Hmm. J'ai vérifié b) - se plaint. c) - fonctionne...

Après tout, j'ai examiné le fichier project.pbjproj dans un éditeur et, bien que l'interface graphique affirme qu'il n'y a pas d'entrée pour "Code Signing Entitlements", en fait, il y en a une dans la section Debug. Je l'ai vidée et j'ai terminé.

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