web-dev-qa-db-fra.com

Erreur de code de code: Impossible de trouver le profil d'approvisionnement après la suppression du profil expiré.

J'ai essayé de reconstruire une application qui fonctionnait hier. Vous avez un message indiquant qu'un profil a expiré, je l'ai donc supprimé de l'iPod et d'iTunes. Lorsque j'ai choisi un nouveau profil (un avec un * dans l'identifiant), je reçois maintenant une erreur:

Erreur de signature de code: profil d'approvisionnement (chaîne longue) introuvable.

Qu'est-ce que je rate? J'ai parcouru des questions connexes et je n'ai pas déjà vu ce scénario.

498
quantumpotato

Parfois, votre fichier de projet xcode est gâché, surtout si vous avez un ancien projet et que vous l'avez créé avec une ancienne version de xcode/iphone sdk. Ce que vous devez faire, c'est ouvrir le fichier de projet dans un éditeur de texte, rechercher la "chaîne longue" de votre erreur et effacer manuellement cette ligne. En fait, vous devriez simplement aller de l'avant et effacer toute ligne qui pointe vers un profil d'approvisionnement. Rouvrez ensuite le projet dans xcode, allez dans les paramètres et resélectionnez votre nouveau profil. Cela élimine les problèmes de ce genre la plupart du temps. Les lignes qui pointent vers les profils d'approvisionnement vont ressembler à ceci:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
854
Brad The App Guy

Voici une solution plus simple qui a fonctionné pour moi et qui n'exige pas l'édition manuelle du fichier de projet:

Dans XCode, dans le volet "Groupes et fichiers", développez "Cibles" et double-cliquez sur la cible de votre application. Cela fait apparaître la sous-fenêtre Info pour la cible. Dans la section "Construction", vérifiez la section "Signature du code" pour voir s'il existe d'anciens profils et remplacez-le par le bon.

Notez que cela diffère du double-clic sur l'icône de votre projet et de la modification du profil à partir de là. Assez étonnant :)

Ou Je

129
Ori
  1. Propriétés du projet et des cibles -> "Ne pas coder le signe" -> OK -> cmd + S (ou cmd + B);
  2. Propriétés du projet et des cibles -> "Votre profil de provision" -> OK

  3. Tout fonctionne à nouveau!

76
user732414

Je suis d'accord avec la réponse de Brad, selon laquelle vous pouvez résoudre ce problème en modifiant manuellement votre cible/projet, en supprimant les lignes de ce type:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

Cependant, dans Xcode 4.2 et versions ultérieures, il existe un moyen beaucoup plus facile d’accéder à ce texte, de le sélectionner et de le supprimer. Dans le navigateur de projet à gauche, sélectionnez votre projet (la ligne la plus haute du navigateur de projet). Choisissez maintenant Affichage> Editeur de version> Afficher l'éditeur de version. Ceci affiche votre projet sous forme de texte et vous pouvez rechercher PROVISIONING et supprimer la ligne problématique, directement dans le volet d'édition de Xcode.

10
matt

Je viens de voir une variation de ce problème: je suis allé dans le fichier project.pbxproj conformément aux notes de Brad Smith ci-dessus, sauf que dans ce cas, toutes les lignes PROVISIONING_PROFILE semblaient être correctes, sans qu'aucune chaîne de profil "incorrecte" ne puisse être XCode. ne trouve pas.

Cependant, le correctif était le même: supprimer TOUTES les lignes PROVISIONING_PROFILE dans project.pbxproj, même si elles avaient l'air "bonnes" en théorie, puis rouvrir le projet dans XCode.

6
theevank

Pour réaliser la solution de Brad entièrement dans Terminal, utilisez ces commandes

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd - efface la ligne entière
  5. Appuyez sur n jusqu'à ce qu'il n'en reste plus
  6. Ctrl + x pour enregistrer et fermer
4
MechEngineer

Dans mon cas, le problème a été résolu en ouvrant Fenêtre -> Organiseur, en sélectionnant mon périphérique et en supprimant l'ancien profil de provisioning dans le panneau "Provisionnement" à droite. L'ancien était déjà marqué d'un "x" rouge mais l'iPhone l'utilisait toujours.

Outre ce profil, le nouveau profil apparaissait (avec le même nom) et, après avoir simplement relancé l'application, je l'ai fait fonctionner correctement.

3
stack-o-frankie

Je viens de passer environ une heure à faire cela et avec l'aide du conseil de Brad et de quelques modifications supplémentaires, tout a fonctionné.

Je l'ai fait en utilisant les éléments suivants: 10.7.3, Xcode 4.3.2, iOS 5.1 btw.

1) Faites un clic droit sur votre myapp.xcodeproj et sélectionnez le contenu du paquet

2) ouvrez project.pbxproj avec un éditeur de texte (déconseillez textedit car cela pourrait gâcher le formatage)

3) Faites défiler complètement jusqu'à trouver /* Begin XCBuildConfiguration section */

4) Notez que vous avez des sections de débogage et de libération

5) Dans la section release, regardez CODE_SIGN_IDENTITY & "CODE_SIGN_IDENTITY[sdk=iphoneos*]" il devrait ressembler à ceci:

CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";

6) Regardez PROVISIONING_PROFILE et "PROVISIONING_PROFILE[sdk=iphoneos*]" ils devraient ressembler à ceci:

PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

Cela devrait correspondre à votre profil d'approvisionnement dans Xcode. Pour voir s'ils correspondent, ouvrez Xcode> Fenêtre> Organiseur> Périphériques> Profils de provisioning> Faites un clic droit sur le profil> Afficher dans le Finder> Le nom du fichier .mobileprovision est votre identifiant de profil.

7) Faites défiler la liste dans le project.pbxproj et trouvez une seconde instance de la section release. La deuxième instance de la section release devrait se terminer par un commentaire disant /* End XCBuildConfiguration section */

8) assurez-vous que la deuxième section correspond à la première section de sorte que CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*], et PROVISIONING_PROFILE soient tous renseignés.

3
bobbypage

Une suggestion que je ferai étant donné que personne ne l’a encore dit: VEUILLEZ-VOUS PASSER SVP, faites une sauvegarde de l’ensemble de votre fichier .xcodeproj AVANT de commencer à en modifier le contenu. Visser le fichier de projet et ne pas avoir de sauvegarde entraînera une expérience très très désagréable.

Pouvoir revenir en arrière lors d'une édition peut être une aubaine.

2
Richard Brown

Sélectionnez les lignes vides dans la désignation de code qui sont vides sous Any SDK iOS et sélectionnez le bon certificat.

1
sunkencity

Je viens de rencontrer ce problème dans mon XCode4. Pour résoudre ce problème, vous devez insérer toutes les dispositions correctes dans les configurations Debug et Release.

J'essayais de soumettre (en archivant) mon application. Donc, je modifie simplement les dispositions de débogage en "Ne pas coder le signe", et la disposition de libération à la disposition d'appstore de mon application.

Cela le corrige et me permet d’archiver normalement. J'espère que ça t'as aidé.

1
GeneCode

La solution de Brad Smith a fonctionné pour moi, mais j'ai également dû supprimer le champ CODE_SIGN_IDENTITY pour que cela fonctionne.

1
jean_jean

Malheureusement, cette approche n'a pas fonctionné pour moi. Mais voici un correctif qui a fonctionné pour moi (pour que cela fonctionne, vous avez besoin d’un fichier de projet fonctionnel sur Subversion).

J'ai restauré une version de travail de mon fichier de projet. Comme il n'est pas possible de revenir en arrière avec Xcode ( Où est l'option 'Rétablir' dans le contrôle de code source de Xcode 4? ) - J'ai utilisé Tortoise, ma machine Windows et ce tutoriel ( http: //tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html ) pour revenir à un fichier de projet plus ancien.

Le tutoriel n'ayant pas fonctionné pour moi, j'ai simplement utilisé Tortoise pour enregistrer la révision de travail de mon fichier de projet sur une clé USB afin de le transférer sur mon mac. Après cela, j'ai remplacé le nouveau fichier de projet brisé par l'ancien, nettoyé et fonctionnant à merveille!

0
Chris Conway

J'avais des problèmes parce que j'avais mis à jour mon profil d'approvisionnement AdHoc avec de nouveaux périphériques à utiliser avec TestFlight. Cela se produit supposément, car xcode a une ancienne référence à votre profil de provisioning dans les paramètres de construction de la définition de code pour le projet ou les cibles. La façon dont j'ai corrigé le mien était de:

  1. Accédez à la fois aux paramètres de génération cible et aux paramètres de construction du projet. Sous la signature de code, remplacez tous les profils d'approvisionnement par un autre.
  2. Accédez aux périphériques/profils d'approvisionnement dans l'organiseur, supprimez les profils incriminés, puis cliquez sur le bouton d'actualisation en bas à droite.
  3. Revenez aux paramètres de génération de cible et de projet et définissez vos profils de provisionnement sur les profils de provisionnement appropriés (espérons-le) récemment actualisés.
0
George McKibbin

Vous pourriez supprimer l'ancienne référence du fichier d'approvisionnement. Ensuite, après avoir importé le nouveau profil de provisioning et en sélectionnant Xcode Builder.

0
annu

Au moins dans Xcode 5, c'est ce qui a résolu le problème pour moi:

Sous Profil d'approvisionnement, sélectionnez le profil d'approvisionnement incriminé, puis sélectionnez un profil d'approvisionnement valide dans le menu déroulant.

enter image description here

0
RawMean