Je rencontre un problème de distribution ad-hoc sur mon iPhone. J'ai développé une application avec SDK 3.0. J'ai une licence de développeur. J'ai ajouté des certificats et des profils d'approvisionnement dans mon projet. Donc, pas de problème avec ça.
Mais lorsque j'essaie d'installer l'application sur mon iPhone, le projet est compilé, puis le message d'erreur suivant s'affiche: "The executable was signed with invalid entitlements"
dans la fenêtre de l'organiseur. Est-ce que je manque quelque chose? J'ai mis à niveau mon iPhone depuis la version 2.2.1 et téléchargé le dernier SDK d'Apple.
S'il vous plaît aidez-moi avec ce problème.
Le programme du portail contient de très bonnes instructions. Si vous vous connectez à
http://developer.Apple.com/iphone
Cliquez ensuite sur Distribution à gauche, puis sur le bouton
Création et téléchargement d'un profil d'approvisionnement de distribution pour une distribution ad hoc
lien en bas.
Voici le bit clé:
Pour la distribution ad hoc, procédez comme suit:
Cette erreur peut également se produire si vous essayez de profiler une application pour laquelle le périphérique n'est pas inclus dans le profil de provisioning.
Assurez-vous que votre périphérique est inclus dans le profil de provisioning de développement que vous souhaitez utiliser. D'une certaine manière, le message d'erreur est trompeur. Mes droits étaient réellement ok.
J'ai constaté que "get-task-allow" devait être vérifié pour les versions de développement, mais décoché pour les versions de distribution. Le moyen le plus simple de réaliser cela (AFAIK) est d’avoir deux fichiers d’autorisations dans votre projet: Entitlements.plist et EntitlementsDebug.plist - et de référencer celui qui convient dans les paramètres de projet de construction pour les diverses configurations de votre projet.
Les autorisations de signature de code ne sont plus nécessaires pour les générations Ad Hoc dans Xcode 4 - voir les notes détaillées dans Note technique Apple TN225
Cela est dû au fait que votre périphérique sur lequel vous exécutez votre application n'est pas sélectionné avec votre profil d'approvisionnement.
Il suffit donc de passer Certificats, identifiants et profils sélectionnez votre iOS Provisioning Profiles
_ cliquez sur edit puis sélectionnez votre appareil
Si vous vous retrouvez un jour dans la situation, vérifiez que "get-task-allow" semble être nécessaire pour déployer votre version de débogage (!) Sur votre téléphone, vérifiez ceci:
a) Vérifiez le paramètre de construction. Il ne doit y avoir aucune entrée dans "Droits de signature de code" pour le débogage. B) Supprimez temporairement Entitlements.plist et créez votre version de débogage. S'il se plaint d'un Entitlements.plist manquant, alors vous avez probablement la même situation, je devais me battre aujourd'hui. c) Générez à nouveau avec Entitlements.plist et activez "get-task-allow". Si cela fonctionne maintenant, vous avez probablement le même problème:
Après avoir bricolé avec de nouveaux profils, je n’ai pas pu déployer ma version Debug sur le téléphone. Ad Hoc était bien. J'ai vérifié a) - vide .. Hmm. J'ai vérifié b) - se plaint. c) - travaillé ...
Après tout, j’ai examiné project.pbjproj dans un éditeur et, bien que l’interface utilisateur ait prétendu qu’il n’y avait pas d’entrée pour "Droits de signature de code", il y en avait une dans la section Débogage. Je l'ai vidé et c'était fait.
Je viens de passer trois heures passionnantes à lutter contre cela. Je viens de mettre à niveau un projet à la version 4.2 et, pour une raison quelconque, cela ne fonctionnerait tout simplement pas.
J'ai finalement supprimé le fichier Entitlements.plist puis créé un nouveau.
Fichier> Nouveau fichier> Signature du code> Droit
Nommez le fichier Entitlements.plist
Assurez-vous qu'il est dans le groupe Ressources dans xCode.
Le type get-task-allow BOOL n'a pas été inséré dans le fichier Entitlements.plist. Je l'ai ajouté, vérifié, sauvegardé, décoché, sauvegardé. Cela m'a fait me sentir mieux.
J'ai ensuite supprimé les profils Adhoc et Release que j'avais créés. Re-téléchargé à partir du portail d'approvisionnement et les replacer dans l'organiseur xCode.
Je suis ensuite allé dans les paramètres de construction et je me suis assuré que les profils appropriés étaient attribués aux profils de débogage et de libération.
J'ai ensuite changé le pour Release/Device. Appuyez sur le bouton de construction et cela a fonctionné.
Je ne sais pas pourquoi.
Dans Xcode 5.1, si vous allez dans Préférences -> Comptes -> Afficher les détails ...
Assurez-vous que le statut d'identité de signature est valide. Si le message dit Révoqué, cliquez sur le bouton Plus et ajoutez l'identité de signature appropriée: Développement iOS ou Distribution iOS. Xcode le remplacera par un nouveau, valide.
Pour moi, cela a résolu le problème: https://coderwall.com/p/-ckobg
PROVISIONING_PROFILE = ...
"PROVISIONING_PROFILE[sdk=iphoneos*]" = ...
CODE_SIGN_IDENTITY = ...
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ...
La réponse de John est correcte à 99%. J'ai trouvé que (du moins dans ma configuration), vous devez ouvrir l'inspecteur des paramètres de construction pour le projet . Les paramètres de construction de la cible ne contiennent pas "Droits de signature de code". Peut-être que cela ne fera aucune différence si vous n’avez qu’un seul objectif dans votre projet. Mais si vous avez plusieurs cibles, vous devez accéder aux paramètres de construction du projet. En tout cas, après avoir fait ce que John a dit, ma version de distribution ad hoc a parfaitement fonctionné.
Je viens de recevoir ce même code d'erreur. Il semble qu'il y ait différentes choses qui causent ceci et donc différentes manières de le réparer.
Dans mon cas, j'avais deux appareils différents portant le même nom (un iPhone 4 et un iPhone 4S). Changer le nom de l'un d'eux a corrigé cette erreur complètement pour moi ...
Je viens juste de voir cela arriver à un développeur de l'équipe que j'administre.
Il s'est avéré que son certificat de développeur avait expiré et qu'après son renouvellement, j'ai omis d'ajouter son certificat au profil d'approvisionnement utilisé par son application.
J'essayais d'ajouter le support iCloud à mon application existante, mais j'ai constaté qu'après avoir ajouté des droits et configuré iCloud, mon application ne pouvait plus déboguer.
J'ai réalisé que mon certificat de développement générique iOS avait un APPID différent de celui sur lequel je travaillais. Donc, pour résoudre ce problème, au lieu d’utiliser mon certificat générique, j’ai créé un certificat de développement spécifique pour cet APPID.
J'ai actualisé mon profil d'approvisionnement dans XCode, nettoyé l'application, déconnecté mon périphérique, redémarré XCOde et le périphérique connecté, puis je me suis lancé et tout fonctionne à merveille!
pJosh, ça pourrait aider à comprendre. Dans mon cas, mon profil de provisioning d'équipe expirait (le portail de provisioning indiquait qu'il est géré par XCode), ainsi que le profil de test de périphérique de l'application. (Je ne sais toujours pas pourquoi, mais le portail avait un bouton "Renouveler" à côté du profil de l'équipe, mais cela ne ferait rien lorsque je clique dessus.)
J'ai donc supprimé les profils sur le point d'expirer, puis dans XCode, accédez à Organizer (Command-Shift-2), sous Library/Provisioning Profiles, j'ai supprimé les profils expirants. Cliquez ensuite sur "Actualiser" en bas, entrez mon Apple ID) et les identifiants expirés ont été renouvelés.
Enfin, sur ma cible, je suis allé dans Paramètres de construction, Signature du code, et je me suis assuré de sélectionner le profil de provisioning. Voila, maintenant il construit sur mon appareil.
Je n'avais pas accepté le nouveau contrat de licence mis à jour d'Apple.
En bref: connectez-vous au compte de votre développeur -> profil de -> révision -> lisez le contrat ou demandez à votre avocat de le lire pour vous -> acceptez (à votre guise) -> et cliquez à nouveau sur le profil pour vérifier le statut de votre profil .
Dans mon scénario, l'entité de signature de code valide ne se présentait pas. Lorsque j'ai suivi la procédure ci-dessus, il était visible et j'ai pu exécuter l'application sur l'appareil et/ou créer le fichier iPA sans trop de difficulté.
Si ce problème se produisait alors que tout semblait être correctement configuré, les paramètres de construction indiquaient le profil de provisioning correct, la signature de code était correctement configurée, etc.
Un problème est survenu parce que je venais de créer un nouveau schéma et de ne pas avoir régénéré mes CocoaPods pour les nouvelles configurations. Comme vous pouvez le voir sur l'image, la nouvelle configuration ad-hoc pointe sur le Pods.production
configuration, au lieu d'un Pods.ad-hoc
configuration (et test respectivement)
Pour réparer:
None
- les cocoapodes ne généreraient pas les configs si je ne le faisais pas.pod install
C'est ça!
J'ai aussi passé plusieurs heures à me battre avec cela. La solution est très simple. Editez votre fichier Entitlements.plist à la racine du répertoire de votre projet. Trouvez la ligne qui dit <key>get-task-allow</key>
. En dessous, il devrait être <false/>
. Changer cela en <true/>
.
Désolé que ce soit très tard, mais je regardais juste cette question et ai trouvé quelque chose qui a fonctionné pour moi. Je suis allé dans PROJECT-> Build Settings et j'ai trouvé la section Code Signing. A côté de debug, mon profil de distribution qui disait Iphone Distribution: MY NAME
a été choisi. J'ai plutôt choisi Iphone Developer: MY NAME
dans la liste déroulante sous IpodProfile (for bundle identifiers com.myName.myApp
qui était le profil d'approvisionnement pour mon appareil. J'espère que cela t'aides!