web-dev-qa-db-fra.com

Erreur de profil de provisioning d'intégration continue Xcode

J'essaie de configurer l'intégration continue dans Xcode 5 sur Mavericks. Si un bot effectue une nouvelle construction, il se termine sans erreur. Si j'ai le bot faire la construction de mon projet actuel, j'obtiens l'erreur suivante:

Aucun profil de provisioning correspondant trouvé: vos paramètres de construction spécifient un Profil d'approvisionnement avec l'UUID “XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”, cependant, aucune provision de ce type profil a été trouvé. Erreur CodeSign: la signature de code est requise pour type de produit 'Application' dans le SDK 'iOS 7.0'

Si je tire la dernière source sur la machine serveur et que je la construis/archive sur le serveur, cela fonctionne comme prévu. Tous les certificats et clés publiques attendus sont inclus dans le trousseau. J'ai essayé de mettre à jour tous les paramètres de profil d'approvisionnement dans le projet et de cibler les points de schéma à. Est-ce que quelqu'un a des idées pour résoudre cette erreur?

EDIT: Après avoir ouvert le fichier de projet et en regardant l’UUID, je peux dire que l’UUID du fichier de provisioning qu’il ne trouve pas existe. Peut-être qu’il s’agit d’une sorte de problème d’autorisation avec la génération n’ayant pas accès au certificat de profil ou de trousseau? 

35
lehn0058

J'ai eu le même problème et j'ai finalement réussi à le faire fonctionner.

Tout d'abord, j'ai ajouté mon serveur à mon équipe de développeurs mais j'ai eu la même erreur que vous.

Ensuite, j'ai copié ma clé de user keychain à system keychain comme indiqué ici mais cela ne suffisait toujours pas.

Et enfin, j'ai copié les profils de provisioning de ~/Library/MobileDevice/Provisioning\ Profiles/ à /Library/MobileDevice/Provisioning\ Profiles/ (en fait, j'ai copié tout le répertoire MobileDevice car il n'existait pas).

Et maintenant, j'ai une intégration continue fonctionnelle qui me donne un ipa que je peux télécharger sur mon Mac ou installer sans fil sur mes appareils.

Je ne sais pas pourquoi je devais faire cela, mais j'espère que cela fonctionnera pour vous aussi.

63
iDou

J'ai eu le même problème depuis le passage à Xcode 5. Ma solution était différente.

Comme le message d'erreur "Vos paramètres de construction spécifient un profil d'approvisionnement avec l'UUID xxxxxx", j'ai vérifié le fichier contenant mon paramètre de construction (myproject.xcodeproj/projecjt.pbxproj).

Là j'ai trouvé une ligne avec exactement cet UUID. Après avoir supprimé la ligne (bien sûr, une sauvegarde du fichier a d’abord été réalisée), tout a fonctionné à nouveau.

23
Oliver Eichhorn

Bonjour, j'ai eu le même problème et le problème était que j'avais les certificats dans mon trousseau de connexion et que le script de construction cherchait dans le trousseau Système. J'ai également copié le certificat dans la chaîne de clés système et maintenant, Xcode a pu utiliser le profil d'approvisionnement pour la construction.

4
Anoop

après avoir cherché comment résoudre ce problème, après avoir passé une journée entière devant mon clavier, parcouru toutes les pages et recherché des solutions, j'ai trouvé quelque chose d'intéressant. 

Quelque chose m'est venu à l'esprit (modifiez YOU_APP.xcodeproj). Alors j'ai résolu ça: 

  1. Allez dans votre dossier de projet
  2. Faites un clic droit sur YOU_APP.xcodeproj et choisissez Afficher le contenu du paquet
  3. Editez project.pbxproj avec (par exemple, TextMate2 ou quelque chose comme ça)
  4. MAINTENANT Attention. J'ai trouvé tout où cet UUID (mauvais UUID) sera affiché et vient d'être remplacé par mon i créé et utilisé depuis plusieurs fois. J'ai remplacé 13 fois. 
  5. terminé. Il suffit de compiler et c'est tout.

Vous n'y croirez pas, mais cela a fonctionné après avoir passé beaucoup de temps. =) 

3
Imeksbank

En réalité, la solution est beaucoup plus simple que de copier des profils d’approvisionnement ou similaires. Tout ce que vous avez à faire est d’installer correctement le serveur Xcode.

J'utilise Xcode 6.0.1 (6A317) avec Xcode Server 3.2.1 (13S5179). Bien que je pensais que Xcode Server utiliserait les profils d'approvisionnement de mon installation Xcode, ce n'est pas le cas. Il a son propre dossier à /Library/Developer/XcodeServer/ProvisioningProfiles/, alors que Xcode utiliserait ~/Library/MobileDevice/Provisioning\ Profiles/

La solution est donc la suivante: .__ Ajoutez vos comptes de développeur à Xcode Server. Il téléchargera ensuite automatiquement tous les profils de provisioning nécessaires automatiquement afin que vos versions de CI aient enfin accès aux profils de provisioning. Vous ajoutez un compte en cliquant sur le bouton Edit... dans la section Builds de Xcode Server, comme vous pouvez le voir sur la capture d'écran.

enter image description here

1
vinzenzweber

Pendant les dernières semaines, j'ai cherché sur le net pour essayer d'établir une intégration continue via Jenkins. Lorsqu'ils ont échoué via OS Bits Server, ils ont tous deux échoué avec le même problème.

Copier les profils de provisioning de "~/Library/MobileDevice/Profils de provisioning /" vers "/ Library/MobileDevice/Profils de provisioning /" était la seule clé.

Juste deux points à prendre en compte: -

1-Si vous utilisez OS X Lion, veillez à ce que votre dossier ~/Bibliothèque _ n'apparaisse pas dans le Finder tel qu'il est défini sur invisible; Veuillez consulter http://www.macworld.com/article/1161156/view_library_folder_in_lion.html pour le voir.

2-N'apportez pas le profil de provisioning vous-même (par exemple, téléchargez-le à partir de MemberCenter ou autre, ...), copiez simplement les profils existants dans votre ~/Bibliothèque/...; leur nom est différent; ils sont tous nommés par l'UUID, par exemple, 3D19E524-9E2A-45C2-942C-F30AC3ACF0CC * .mobileprovision *

1
amrsd

J'avais la même erreur et aucune des réponses ci-dessus n'a fonctionné pour moi. J'ai référencé Ce blog et copié mes profils d'approvisionnement du répertoire ~/Library/MobileDevice/Provisioning Profiles/dans le répertoire/Bibliothèque/Serveur/Xcode/Data/ProvisioningProfiles et j'ai toujours la même erreur. 

J'ai donc ouvert Xcode et synchronisé mes profils avec le portail de provisioning. Si vous n'êtes pas familier, allez dans Préférences -> Comptes ->, mettez en surbrillance l'équipe de développeurs et cliquez sur "Afficher les détails". Sélectionnez ensuite l’identité de signature du code de distribution dans «Signing Identities» (Identités de signature), puis cliquez sur le bouton Actualiser dans le coin inférieur gauche. Je l'ai fait à partir du serveur, cependant, je suis sûr que vous pouvez actualiser vos profils de provisioning sur votre Mac de développement, puis les copier sur le serveur.

Ce processus actualise les profils de provisioning dans le répertoire ~/Library/MobileDevice/Provisioning Profiles /. J'ai ensuite réessayé le processus de copie dans/Library/Server/Xcode/Data/ProvisioningProfiles de ~/Library/MobileDevice/Provisioning Profiles/et le bot Xcode a trouvé le profil de provisioning lors de la prochaine intégration.

En guise de remarque, j'ai essayé de me déconnecter de l'équipe de développeurs du service Xcode et de me reconnecter, ce qui ne fonctionnait pas pour moi. Théoriquement, cela devrait accomplir la même chose.

Comme d'autres l'ont mentionné, je copierais tous les profils plutôt que de trouver uniquement le profil ad hoc que vous recherchez. La raison en est que, peut-être, comme dans mon cas, le bot Xcode essayait d'archiver avec le profil de développement et que le "Profil de développement" était beaucoup plus facile à déboguer que "4F96F173-7EBE-4892-B283-52489DE2F409".

Si cela ne fonctionne toujours pas, je suggère de suivre le lien ci-dessus et de suivre le processus de certification; vous prenez le certificat de votre ordinateur développeur et le copiez dans le dossier système de l'application Keychain Access sur votre serveur.

Juste pour ajouter une note car cela me donnait également un gros problème, le simulateur pour les robots Xcode peut être situé dans/var/_xcstest/Bibliothèque/Application Support/iPhone Simulator /. C'est là que je l'ai trouvé sur notre serveur mais je doute que ce soit différent pour d'autres. Je devais le trouver car le fichier Localizable.strings n'était pas mis à jour dans le simulateur et les tests échouaient. J'espère que cela t'aides.

1
Chris

Supprimer le dossier entier ~/Library/Developer/XCode devrait résoudre le problème de la mise en cache. Ensuite, les profils d'approvisionnement situés dans ~/Library/MobileDevice/Provisioning Profiles/ doivent être trouvés correctement par xcode.

0
benweet

J'ai eu le même problème: j'ai ajouté les profils d'approvisionnement à/Library/Server/Xcode/Data/ProvisioningProfiles mais j'ai eu cette erreur. La solution consiste à modifier les autorisations des profils d'approvisionnement afin que tout le monde dans le système puisse les lire. 

0
Vladimir Obrizan

J'ai essayé toutes les réponses ici avant de m'asseoir et de penser que cela ne pouvait pas être aussi difficile. A recherché à nouveau et trouvé ceci Apple OS X Server (service Xcode CI) ne trouve pas de profils de provisionnement

J'avais besoin d'utiliser les bons profils de provisioning d'équipe. Cette page contient également des liens vers un bon tutoriel.

0
Longmang

@amrsd Merci. Je constate maintenant que de nombreuses personnes copient les profils manuellement à partir de leur dossier "Profils de provisioning" dans "~/Library/MobileDevice" (y compris moi-même). Si c’est également votre chemin, quittez copier + coller et faites un lien symbolique!

$ Sudo -i

# mkdir /Library/MobileDevice; ln -s /Users/myuser/Library/MobileDevice/Provisioning\ Profiles/ /Library/MobileDevice/ - où myuser est votre nom d'utilisateur.

0
humbolight