J'ai construit 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 en utilisant mon nouveau profil d'approvisionnement et mon certificat de distribution, mais j'ai des problèmes avec la distribution. J'obtiens constamment l'erreur suivante:
"Droits de signature de code non valides. Les droits figurant dans la signature de votre ensemble d'applications ne correspondent pas à ceux contenus dans le profil d'approvisionnement. Selon le profil d'approvisionnement, l'ensemble contient une valeur de clé qui n'est pas autorisée:" [XXXX.com.sample .company] 'pour la clé' keychain-access-groups ".
Également la même erreur pour une valeur de clé appelée application-identifier
.
Capture d'écran de l'erreur:
la source
Si vous êtes comme moi et que vous pensez avoir TOUT essayé , archivé votre projet plus de dix fois, vous avez cogné la tête sur le clavier et obtenez toujours cette erreur. S'il vous plaît faites-vous une faveur et redémarrez simplement XCode , cela a fonctionné pour moi. Parfois, Apple ... je te déteste.
la source
J'ai suivi de nombreuses é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 c'était nécessaire car le profil de distribution de mon application figurait déjà dans la liste. Voici les étapes:
la source
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
la source
Dans mon cas (désolé), j'ai changé "Équipe" sur "Aucun" dans -> Général -> Identité
Dans un autre cas, j'ai dû passer cette identité de "Aucun" au compte développeur gérant les identités et les profils.
Xcode gâche parfois énormément la signature de code, semble-t-il. Ou bien, nous, simples mortels, ne sommes tout simplement pas assez intelligents pour comprendre ce qu'il fait, bien sûr. N'abandonnez pas, nous subissons tous parfois des tortures de signature de code!
la source
Dans mon cas, j'ai dû définir le bon profil de provisionnement pour la version, puis redémarrer Xcode. Avant de redémarrer, il avait le même profil de provision et ne fonctionnait pas. Ainsi, parfois un redémarrage peut faire des miracles. Peut-être que cela aide quelqu'un.
la source
Si quelqu'un utilise un GameCenter, vérifiez cette section dans votre cible. J'ai travaillé avec un vieux projet et il y avait 2 erreurs (mais tout fonctionnait bien). Le désactiver et le réactiver a résolu ce problème.
Très probablement, cette action ajoute le droit Game Center à l'ID d'application et la gère elle-même.
la source
1.Allez dans le dossier du projet, supprimez les fichiers * .entitlements. 2.Ensuite, allez yo dans la cible du projet xcode -> paramètres de construction -> droits de signature de code - supprimer les valeurs 3.Nettoyer 4.Exécuter
la source
Ah, cette erreur glorieuse. Pour moi, chaque fois que je vois cette erreur, je vérifie les choses suivantes:
1. Autorisez XCode à accéder à tout moment aux informations de votre profil d'approvisionnement - Si XCode continue de demander lorsque vous le démarrez d'avoir accès aux fichiers privés de votre ordinateur afin qu'il puisse obtenir des informations de profil d'approvisionnement avec les options pour autoriser l'accès toujours, pas maintenant, ou juste une fois - réglez-le sur ALWAYS ALLOW access
2. Si vous avez d'anciens fichiers de droits dans votre projet, supprimez-les ainsi que tout signe de leur présence - si vous voyez un fichier .entitlements dans votre projet, supprimez-le (ou supprimez au moins la référence à celui-ci si vous n'êtes pas sûr vous êtes 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 associez-les à vos services dans 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 ont vérifié, puis accédez à XCode et vérifiez votre section `` Capacités '' 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 provisionnement valide à votre application avant de valider - vérifiez à nouveau votre profil de provisionnement pour votre application dans le centre des membres Apple, assurez-vous qu'il n'est pas expiré, qu'il possède le bon identifiant d'application avec le bon identifiant et la distribution . Téléchargez et cliquez sur le nouveau profil d'approvisionnement pour vous assurer que XCode l'a, ou allez dans XCode> Préférences> Comptes> cliquez sur votre compte et `` Afficher les détails '', puis cliquez sur le bouton du coin inférieur pour synchroniser tous les profils avec XCode. Vous devriez avoir le profil disponible pour sélectionner maintenant dans la section «Signature de code». Une fois que vous avez le bon profil d'approvisionnement, vous pouvez définir les lignes «Identité de signature de code» sur l'option appropriée pour ce profil d'approvisionnement.
Remarque - si vous créez 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 TOUS LES AUTRES ÉCHOUENT - Nettoyez votre projet et redémarrez XCode et un peu de magie Apple peut très bien fonctionner la prochaine fois que vous ouvrez votre projet et essayez de valider
la source
Si vous construisez un ancien projet 3.1.5, Xcode 5 a quelques bogues qui rendent malheureusement la réponse de Benjamin impossible, car il n'y a pas de profils de provisioning parmi lesquels choisir. Après de nombreuses heures tardives de lecture tourmentée des fichiers de projet Xcode, j'ai trouvé cette solution qui a fonctionné pour moi:
open -a TextEdit path/to/name.xcodeproj/project.pbxproj
isa=XCBuildConfiguration
).PBXNativeTarget
et une dansPBXProject
XCConfigurationLists
)Vous êtes maintenant prêt à rouvrir, archiver et soumettre à l'App Store - voilà! Ça marche encore!
Comment je pense que ça marche
Je suppose que cela fonctionne parce qu'Apple quelque part le long de la ligne a décidé de supprimer le besoin de toute configuration de distribution séparée, ce qui est une bonne chose. Lorsque j'archive, Xcode code automatiquement les signes pour la distribution. C'est la façon dont cela aurait dû être implémenté en premier lieu, c'est juste dommage qu'Apple ne puisse pas intégrer l'auto-migration dans l'EDI; au lieu de cela, ils nous obligent, les développeurs, à passer des décennies pour faire fonctionner ces choses.
la source
Cela fait plus d'un jour que je lutte avec ce problème, 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 ancienne application que je n'ai pas touchée depuis plus de 3 ans, et maintenant j'étais sur le point de publier une mise à jour tant attendue. 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 qu'il semble recommandé d'utiliser. En particulier, le site «Certificats, Identifiants et Profils» d'Apple a connu de nombreux changements depuis.
Là, j'ai réalisé que le profil de provisionnement que j'utilisais pour la distribution App Store était connecté à l'identifiant de l'application,
ED8xxxxxxx.com.rostsolutions.*
mais en regardant l'identifiant de l'application pour le jeu que j'allais soumettre, j'ai remarqué que l'identifiant de l'application étaitATMxxxxxxx.com.rostsolutions.Swisch
. Le préfixe de l'identifiant d'application ne correspond donc pas! Cela semblait être la racine du problème. J'ai donc créé un nouveau profil d'approvisionnement connecté à l'identifiant d'applicationATMxxxxxxx.com.rostsolutions.Swisch
. En utilisant ce profil de provisioning, j'ai soumis avec succès mon application à l'App Store et maintenant je crois que tout le reste fonctionne bien aux côtés d'Apple.(J'ai d'abord essayé de me connecter au nouveau profil de provisioning à l'ID générique à la
ATMxxxxxxx.com.rostsolutions.*
place, mais cela ne semblait pas fonctionner).Mais ce qui me laisse perplexe, c'est que lorsque je regarde l'ancienne application dans iTunes Connects et que je vais aux détails binaires, il est dit que l'identifiant de l'application est
ED8xxxxxxx.com.rostsolutions.Swisch
. Alors, pourquoi la page "Certificats, identifiants et profils" répertorie-t-elle l'ID d'applicationATMxxxxxxx.com.rostsolutions.Swisch
?la source
Mon problème a été résolu en supprimant mon identifiant Apple de Préférences-> Comptes, puis en l'ajoutant à nouveau. Ensuite, tous mes fichiers de profil d'approvisionnement sont apparus sur le panneau de l'utilitaire Afficher les détails. J'ai choisi par erreur "Profil de provisionnement de l'équipe Mac: *" au lieu du profil de provisionnement de distribution réel pour le projet en pensant qu'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 d'approvisionnement dispose des droits appropriés (par exemple, Maps). J'ai réussi à publier une application avec OSX Maps sans l'autorisation et Apple l'a approuvée - mais aucune carte n'apparaît dans la version de production!
la source
Dans mon cas, j'ai eu le même problème, ma solution était de changer le 'Release Provisioning Profile' dans les paramètres de construction avant de faire l'archivage. Je fais cela 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 "re-signature des archives".
la source
Il existe un très bon tutoriel pour résoudre ce problème sur ce site Web.
Il indique que ce problème peut survenir lorsque l'identifiant de votre bundle de projets est différent de celui que vous avez entré sur le site Web iTunes Connect .
la source
Je pense que xcode 5 utilise "release" au lieu de "distribution" que vous pouvez créer vous-même.
la source
Si tout ce qui précède n'a pas fonctionné (dans mon cas après quelques jours, je n'ai pas eu de chance de tout essayer), je n'ai qu'une seule application Mac. SOYEZ PRUDENT AVEC REVOKE!
1) Révoquez à la main tous les "Mac App Distribution" et "Mac Installer Distribution"
2) Nettoyez les certificats pertinents et les clés ouvertes dans le trousseau ( Attention: exportez avant la suppression)
3) Redémarrez Xcode 4) Allez dans (dans Safari) developer.apple .com -> certificats etc. 5) Créer CertificateSigningRequest.certSigningRequest dans Keychain-> assistant certificat
6) Créer la main sur les deux developer.apple.com "Mac App distribution" et "Mac Installer distribution" avec votre * .certSigningRequest
7) Provisioning Profils -> Distribution -> créer / corriger une disposition personnalisée pour l'AppStore (je l'ai spécialement nommée "profil de provision Mac pour l'AppStore"
8) Xcode -> Paramètres -> Compte -> Votre compte ->Actualiser 9) Xcode Clean -> Archiver -> Valider
la source
J'ai été aux prises 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 appareils au profil d'approvisionnement.
Après avoir vérifié et triplé tous les paramètres de construction, j'ai régénéré le profil d'approvisionnement (sans rien changer), re-téléchargé et cela a bien fonctionné.
Alors remarquez à moi-même: s'il n'y a pas d'explication logique, vous pouvez toujours essayer le bon vieux vaudou informatique.
Je recommande également l' utilitaire de configuration iPhone , qui, malgré son nom, est utile pour vérifier les profils d'approvisionnement que vous avez sur l'ordinateur.
la source
ERREUR ITMS-9000: «Ce bundle n'est pas valide. Les nouvelles applications et mises à jour d'applications soumises à l'App Store doivent être créées 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 un logiciel bêta.
la source
Si plusieurs développeurs utilisent le même compte du centre des membres. L'un d'eux ne peut pas utiliser un certificat créé par d'autres car il a utilisé une demande de certificat créée à l'aide de son ordinateur.
Alternative, leur a dit de vous envoyer le profil de développeur. pas sûr du nom. pour utiliser un certificat créé sur un autre ordinateur.
la source
Les droits de signature de code se produisent parce que votre ressource ne contient pas de fichier de droits dans les ressources. À votre santé
la source
J'ai eu le même problème, mais rien d'écrit ici n'a fonctionné pour moi. Cependant, j'ai trouvé un moyen simple qui a fonctionné pour moi. Voici comment procéder:
1) Dans les paramètres de création de votre projet et de vos cibles, choisissez "Aucun" pour tous les profils de provisioning, et choisissez "Ne pas signer de code" pour toutes les identités de signature de code.
2) Maintenant, choisissez votre cible et accédez aux paramètres de construction. Dans le paramètre Code Signing Identity Release, choisissez «iOS Distribution» pour «Any iOS SDK». Et puis, dans le paramètre Provisioning Profile Release, choisissez votre profil de distribution pour "Any iOS SDK". Après cela, votre paramètre de libération d'identité de signature de code devrait automatiquement passer à «Distribution iPhone».
3) Archivez votre build et validez. Maintenant, cela devrait fonctionner correctement. C'est tout!
la source