web-dev-qa-db-fra.com

Xcode 5: erreurs de droit de signature de code

J'ai créé une nouvelle application qui va prendre en charge IOS 7. J'ai le nouveau XCode 5 GM et j'ai essayé de signer mes applications à l'aide de mon nouveau profil d'approvisionnement et de mon certificat de distribution. problème avec la distribution. Je reçois constamment l'erreur suivante:

"Droits de signature de code non valides. Les droits dans la signature de votre paquet App ne correspondent pas à ceux contenus dans le profil d'approvisionnement . Selon le profil d'approvisionnement, le paquet Contient une valeur de clé qui n'est pas allowed: '[XXXX.com.sample.company]' pour la clé 'groupes de clés'.

Également la même erreur pour une valeur de clé appelée application-identifier.

Capture d'écran de l'erreur: 

enter image description here

148
Benjamin de Bos

La solution réside dans la nouvelle option de Xcode 5 qui dit profil de provisioning. Il suffit de définir le profil d'approvisionnement de la cible du projet sur le bon profil et tout fonctionnera.

enter image description here

208
Benjamin de Bos

Si vous êtes comme moi et que vous pensez que vous avez tout essayéTOUT, vous avez archivé votre projet plus de dix fois, vous avez frappé la tête au clavier et vous obtenez toujours cette erreur. S'il vous plaît faites-vous une faveur et simplement Redémarrez XCode , cela a fonctionné pour moi. Parfois, Apple ... je te déteste. 

53
VGruenhagen

J'ai suivi la plupart des étapes ci-dessus, mais ce qui a finalement fonctionné pour moi a été de rafraîchir mes profils dans Xcode. Je ne sais pas pourquoi cela était nécessaire puisque le profil de distribution de mon application figurait déjà dans la liste. Voici les étapes:

  1. Préférences Xcode 
  2. Onglet Comptes
  3. Sélectionnez votre identifiant Apple
  4. Appuyez sur le bouton Afficher les détails dans le panneau de détail de l'identifiant Apple.
  5. Appuyez sur le bouton Actualiser dans le coin inférieur gauche
25
Joe Regan

Dans mon cas, j’ai activé les mêmes fonctionnalités dans Xcode que dans les services d’application de developer.Apple.com. Cela fonctionne pour moi

enter image description here

enter image description here

12
novecapa

Dans mon cas (désolé), j'ai remplacé "Équipe" par "Aucun" dans -> Général -> Identité.

Dans un autre cas, je devais changer cette identité de "Aucune" au compte de développeur gérant les identités et les profils.

Il semblerait que Xcode faille parfois beaucoup avec la signature de code. Ou, nous, simples mortels, ne sommes tout simplement pas assez intelligents pour comprendre ce qu'il fait, bien sûr. N'abandonnez pas, nous sommes tous soumis à un code de signature de torture parfois!

6
RickJansen

Dans mon cas, je devais définir le profil de provision correct pour la publication, puis redémarrer Xcode. Avant de redémarrer, il avait le même profil de provision et ne fonctionnait pas. Alors, parfois, un redémarrage peut faire des miracles. Peut-être que cela aide quelqu'un.

5
Beny Boariu

1. Allez dans le dossier du projet, supprimez les fichiers * .entitlements. 2.Alors, allez dans la cible du projet xcode -> paramètres de construction -> droits de signature de code - delete values3.Clean4.Run

3
Vlad 25 WLD

Ah, cette glorieuse erreur. Pour moi, chaque fois que je vois cette erreur, je vérifie les points suivants:

1. Autoriser XCode à accéder en permanence aux informations de votre profil d'approvisionnement - Si XCode continue à vous demander, lors de son démarrage, d'accéder aux fichiers privés de votre ordinateur afin qu'il puisse obtenir des informations sur le profil d'approvisionnement avec les options permettant cet accès toujours. , pas maintenant, ou juste une fois - réglez-le sur TOUJOURS AUTORISER l'accès

2. Si vous avez d'anciens fichiers de droits remplis votre projet, éliminez-les et tout signe d'eux - si un fichier .entitlements apparaît dans votre projet vous n'êtes pas sûr d'être prêt à le supprimer), puis assurez-vous que la ligne "Droits de signature de code" sous la section "Signature de code" dans les paramètres de construction est vide

3. Vérifiez vos services d'application en ligne et faites les correspondre avec vos services XCode pour l'application - Accédez au centre des membres Apple et vérifiez l'ID d'application de votre application, cliquez sur l'application pour voir ses «services d'application». et voyez ce que vous avez vérifié, puis allez à XCode et vérifiez votre section "Capabilities" pour vous assurer que les deux ont la même liste de services Apple sur les deux

4. Assurez-vous d'attribuer un profil de provisioning valide à votre application avant de valider - revérifiez votre profil de provisioning pour votre application dans le Centre des membres Apple, assurez-vous qu'il n'a pas expiré, qu'il possède le bon ID avec le bon identifiant de paquet et distribution. Téléchargez et cliquez sur le nouveau profil d'approvisionnement pour vous assurer que XCode le possède ou accédez à XCode> Préférences> Comptes> cliquez sur votre compte et sur "Afficher les détails", puis cliquez sur le bouton situé dans le coin inférieur pour synchroniser tous les profils avec XCode. Vous devez avoir le profil à sélectionner maintenant dans la section "Signature du code". Une fois que vous avez le profil d'approvisionnement approprié, vous pouvez définir les lignes «Identité de signature de code» sur l'option appropriée pour ce profil d'approvisionnement.

Remarque: si vous utilisez un certificat de distribution, il peut être utile de définir toutes les lignes "Identité de signature de code" sur l'identité que vous utilisez pour la distribution, y compris les lignes de débogage.

5. SI TOUT EST ÉCHEC - Nettoyez votre projet et relancez XCode et un peu de magie Apple pourrait bien fonctionner à la prochaine ouverture de votre projet et essayer de valider

3
ColossalChris

Si quelqu'un utilise un GameCenter, cochez cette section dans votre cible. J'ai travaillé avec un vieux projet et il y avait 2 erreurs (mais tout a bien fonctionné). Désactiver et réactiver a résolu ce problème.enter image description here

Très probablement, cette action ajoute le droit Game Center à l'ID de l'application et le gère lui-même.

3
beryllium

Mon problème a été résolu en supprimant mon identifiant Apple dans Préférences-> Comptes, puis en le rajoutant. Ensuite, tous mes fichiers de profil d'approvisionnement apparaissaient dans le panneau de l'utilitaire Afficher les détails. J'avais choisi par erreur "Profil d'approvisionnement de l'équipe Mac: *" au lieu du profil d'approvisionnement actuel de la distribution du projet, car il s'agissait d'une sélection générique. Les fichiers de provisioning doivent être spécifiques au projet. Oh, et BTW, assurez-vous que votre profil de provisioning dispose des droits appropriés (par exemple, Maps). J'ai réussi à publier une application avec OSX Maps sans le droit d'utilisation et Apple l'a approuvée - mais aucune carte ne figurait dans la version de production!

2
Brainware

Si vous construisez un ancien projet 3.1.5, Xcode 5 présente des bogues qui rendent malheureusement la réponse de Benjamin impossible, car il n'y a pas de profil de provisioning à choisir. Après de nombreuses heures tardives de lecture tourmentée des fichiers de projet Xcode, je suis arrivé à cette solution qui a fonctionné pour moi:

  • Dans la sous-fenêtre Utilitaires (à droite) de Xcode 5, sous Document de projet, passez de compatible Xcode 3.1 à compatible Xcode 3.2.
  • Entrez le nom de votre organisation.
  • Fermer le projet.
  • Ouvrez votre fichier de projet, par exemple. open -a TextEdit path/to/name.xcodeproj/project.pbxproj
    • Supprimez les deux clauses de distribution (isa=XCBuildConfiguration).
    • Supprimez les deux lignes d'accompagnement dans buildConfiguration (une dans PBXNativeTarget et une en PBXProjectXCConfigurationLists)

Vous êtes maintenant prêt à rouvrir, archiver et soumettre à l'App Store - le tour est joué! Ça marche encore!

Comment je pense que ça marche

Je suppose que cela fonctionne parce qu'Apple a décidé de ne plus avoir besoin d'une configuration de distribution séparée, ce qui est une bonne chose. Lorsque j'archive, Xcode code automatiquement les signes de distribution. C’est ce qui aurait dû être mis en œuvre, c’est dommage qu’Apple ne puisse pas intégrer la migration automatique à l’EDI; Au lieu de cela, ils obligent les développeurs à passer des décennies à faire en sorte que cela fonctionne.

2
Jonas Byström

Je lutte avec ce problème depuis plus d'un jour maintenant, en essayant toutes sortes de solutions suggérées ici et ailleurs sur Internet. Rien n'a fonctionné ...

Mais j'ai finalement réussi à résoudre le problème!

Le problème que j'avais était avec une vieille application que je n'avais pas touchée depuis plus de 3 ans, et maintenant j'étais sur le point de publier une mise à jour attendue depuis longtemps. Depuis que j'ai publié l'application, Apple a mis à jour le fonctionnement des certificats et de l'identifiant d'application. Ils ont introduit le concept de Team Id qui semble être recommandé… .. En particulier, le site "Certificats, identifiants et profils" de Apple a connu de nombreux changements depuis.

Là, je me suis rendu compte que le profil de provision que j'utilisais pour la distribution sur l'App Store était connecté à l'identifiant d'application ED8xxxxxxx.com.rostsolutions.* mais en regardant l'identifiant d'application pour le jeu que j'étais sur le point de soumettre, je remarque que l'identifiant d'application était ATMxxxxxxx.com.rostsolutions.Swisch. Donc, le préfixe de l'identifiant d'application ne correspond pas! Cela semblait être à l'origine du problème. J'ai donc créé un nouveau profil d'approvisionnement connecté à l'identifiant d'application ATMxxxxxxx.com.rostsolutions.Swisch. À l'aide de ce profil d'approvisionnement, j'ai soumis avec succès mon application à l'App Store et, maintenant, je croise simplement les doigts pour que tout le reste fonctionne bien du côté d'Apple.

(J'ai d'abord essayé de me connecter au nouveau profil de provisioning avec l'identificateur générique Id ATMxxxxxxx.com.rostsolutions.*, mais cela ne semblait pas fonctionner).

Mais ce qui me rend perplexe, c’est que, lorsque je regarde l’ancienne application dans iTunes Connects et que l’on accède à Binary Details, cela signifie que l’ID de l’application est ED8xxxxxxx.com.rostsolutions.Swisch. Alors, pourquoi la page "Certificats, identifiants et profils" indique-t-elle l'ID de l'application sous la forme ATMxxxxxxx.com.rostsolutions.Swisch?

2
Daniel

Si tout ce qui précède n'a pas fonctionné (dans mon cas, après quelques jours pas de chance de tout essayer), je n'ai qu'une seule application Mac. SOYEZ PRUDENT AVEC REVOKE!

1) Révoquer à la main tous les "Mac App Distribution" et "Mac Installer Distribution"
2) Nettoyer les certificats pertinents et les clés ouvertes dans le trousseau (Avertissement: exporter avant la suppression)
3) Redémarrez Xcode 4) Allez à (dans Safari) developer.Apple.com -> certificats, etc. 5) Créez CertificateSigningRequest.certSigningRequest dans Trousseau-> Assistant de certificat
6) Créez à la main sur developer.Apple.com les "Mac App Distribution" et "Mac Installer Distribution" avec votre * .certSigningRequest
7) Profils de provisioning -> Distribution -> Créer/corriger une provision personnalisée pour AppStore (je l’appelle spécialement comme "Profil de provision Mac pour AppStore"
8) Xcode -> Paramètres -> Compte -> Votre compte -> Actualiser 9) Xcode Clean -> Archive -> Valider

1
WINSergey

Il existe un très bon tutoriel pour résoudre ce problème sur this website.

Il indique que ce problème peut se produire lorsque votre identifiant de groupe de projets est différent de celui que vous avez entré sur le site Web iTunes Connect .

1
Lukas

Je me débattais avec un problème similaire (je construisais pour une distribution ad hoc). La seule chose qui a changé depuis le dernier déploiement réussi est l'ajout de deux périphériques au profil d'approvisionnement. 

Après avoir vérifié tous les paramètres de construction deux ou trois fois, j'ai régénéré le profil d'approvisionnement (sans rien changer), téléchargé à nouveau et tout a bien fonctionné.

Donc, remarquez bien: s'il n'y a pas d'explication logique, vous pouvez toujours essayer le bon vieux voodoo IT.

Je recommande également Utilitaire de configuration iPhone , qui, malgré son nom, est utile pour vérifier les profils de provisionnement que vous avez sur votre ordinateur.

1
Tomek Cejner

Dans mon cas, j'ai eu le même problème, ma solution était de changer le «profil de provisioning» dans les paramètres de construction avant de faire une archive. Je le fais deux fois, une fois pour la distribution App Store et une autre pour la distribution ad hoc. J'ajoute également un commentaire sur mes archives. Ma conclusion est qu'il y a quelque chose de cassé dans la "nouvelle signature des archives".

1
Hector

ERREUR ITMS-9000: «Cet ensemble n'est pas valide. Les nouvelles applications et mises à jour d'applications soumises sur l'App Store doivent être construites avec des versions publiques (GM) de XCode 5.1.1 ou version ultérieure et du SDK iOS 7. Ne soumettez pas d'applications créées avec le logiciel bêta.

1
hi0001234d

Je pense que xcode 5 utilise "release" au lieu de "distribution" que vous pouvez créer vous-même.

1
superarts.org

Si plusieurs développeurs utilisent le même compte de centre membre. L'un d'eux ne peut pas utiliser un certificat créé par d'autres parce qu'il a utilisé une demande de certificat créée à l'aide de son ordinateur.

Vous devez utiliser un certificat que vous avez créé (demande de certificat .__ créée à l'aide de votre ordinateur).

Alternative, leur a dit de vous envoyer le profil de développeur. pas sûr du nom. d'utiliser un certificat créé sur un autre ordinateur.

0
hasan

Signature de code Les droits d'accès résultent du fait que votre ressource ne contient pas de fichier de droits d'accès dans les ressources. Accédez simplement au paramètre de construction et à la recherche de code. À votre santé

0
Shauket Sheikh