Xcode 5: erreurs d’autorisation de signature de code

J’ai créé une nouvelle application qui supportera l’IOS 7. J’ai obtenu le nouveau XCode 5 GM et j’ai essayé de signer mes applications en utilisant mon nouveau profil de provisionnement et mon nouveau certificate de dissortingbution, mais j’ai des problèmes de dissortingbution. Je reçois constamment l’erreur suivante:

“Droits de signature de code non valides. Les droits dans la signature de votre regroupement d’applications ne correspondent pas à ceux contenus dans le profil d’approvisionnement. Selon le profil d’approvisionnement, l’ensemble contient une valeur de clé non 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:

entrer la description de l'image ici

La solution réside dans la nouvelle option de Xcode 5 qui indique le profil de provisionnement. Il suffit de définir le profil d’approvisionnement de la cible du projet sur le bon profil et cela fonctionnera.

entrer la description de l'image ici

Si vous êtes comme moi et que vous pensez que vous avez essayé TOUT , archivé votre projet plus de dix fois, frappé la tête sur le clavier et toujours obtenir 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.

J’ai franchi plusieurs des étapes ci-dessus mais ce qui a finalement fonctionné pour moi a été de rafraîchir mes profils dans Xcode. Vous ne savez pas pourquoi cela était nécessaire puisque le profil de dissortingbution de mon application apparaissait 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 des détails d’identification Apple.
  5. Appuyez sur le bouton Actualiser dans le coin inférieur gauche

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

entrer la description de l'image ici

entrer la description de l'image ici

Dans mon cas (désolé) je suis passé de “Team” à “None” dans -> General -> Identity

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

Xcode gâche parfois beaucoup avec la signature de code, semble-t-il. Ou, nous, simples mortels, ne sums tout simplement pas assez intelligents pour comprendre ce qu’il fait, bien sûr. N’abandonnez pas, nous passons tous à travers des codes qui signent parfois des tortures!

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

Si quelqu’un utilise un GameCenter, vérifiez cette section dans votre cible. J’ai travaillé avec un ancien projet et il y avait 2 erreurs (mais tout fonctionnait bien). La désactivation et la réactivation ont résolu ce problème. entrer la description de l'image ici

Il est fort probable que cette action ajoute le droit de Game Center à l’ID d’application et le gère lui-même.

1. Accédez au dossier du projet, supprimez les fichiers * .entitlements. 2. Ensuite, allez dans la cible du projet xcode -> parameters de construction -> droits de signature de code – supprimer les valeurs 3.Clean 4.Run

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

1. Autoriser XCode à accéder à vos informations de profil de provisionnement à tout moment – Si XCode continue à demander lorsque vous le démarrez pour avoir access aux fichiers privés de votre ordinateur afin d’obtenir des informations de profil avec les options permettant toujours l’access, pas maintenant ou juste une fois – réglez-le TOUJOURS autoriser l’access

2. Si vous avez des anciens fichiers d’autorisation autour de votre projet, éliminez- les et tout signe de ceuxci – si vous voyez un fichier .entitlements dans votre projet le supprimer (ou au moins en supprimer la référence 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 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 de l’application de votre application, cliquez sur l’application pour afficher ses services d’application et voyez ce que vous voulez. avoir vérifié, puis aller à XCode et vérifier votre section «Capabilities» pour vous assurer que les deux ont la même liste de services Apple sur les deux

4. Assurez-vous d’atsortingbuer un profil de provisioning valide à votre application avant de le valider – vérifiez votre profil de configuration pour votre application dans le Centre des membres Apple, assurez-vous qu’il n’a pas expiré, qu’il possède le bon identifiant et la dissortingbution corrects . Téléchargez et cliquez sur le nouveau profil de provisionnement pour vous assurer que XCode en dispose, ou accédez à XCode> Préférences> Comptes> cliquez sur votre compte et sur «Afficher les détails», puis sur le bouton en bas pour synchroniser tous les profils sur XCode. Vous devriez avoir le profil disponible pour sélectionner maintenant dans la section “Signature de code”. Une fois que vous disposez du profil de configuration correct, vous pouvez définir les lignes «Identité de signature de code» sur l’option appropriée pour ce profil de configuration.

Remarque: si vous faites un certificate de dissortingbution, il peut aider à définir toutes les lignes “Identité de signature de code” sur l’identité que vous utilisez pour la dissortingbution, y compris les lignes de débogage.

5. SI TOUT AUTRE ÉCHOUE – Nettoyez votre projet et redémarrez XCode et une certaine magie Apple pourrait bien fonctionner la prochaine fois que vous ouvrez votre projet et essayez de valider

Si vous construisez un ancien projet 3.1.5, Xcode 5 contient des bogues qui, malheureusement, rendent la réponse de Benjamin impossible, car aucun profil Provisioning ne peut être choisi. Après plusieurs heures de lecture tourmentée des fichiers de projet Xcode, je suis tombé sur cette solution:

  • Dans le volet Utilitaires (à droite) de Xcode 5, sous Document de projet, remplacez compatible Xcode 3.1 par 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 Dissortingbution ( isa=XCBuildConfiguration ).
    • Supprimez les deux lignes d’accompagnement dans buildConfiguration (une dans PBXNativeTarget et une dans PBXProject XCConfigurationLists )

Vous êtes maintenant prêt à ré-ouvrir, archiver et soumettre à App Store – voilà! Ça marche encore!

Comment je pense que ça marche

Je suppose que cela fonctionne parce qu’Apple, quelque part, a décidé de supprimer la nécessité d’une configuration de dissortingbution séparée, ce qui est une bonne chose. Lorsque j’archive, Xcode code automatiquement les signes pour la dissortingbution. C’est la façon dont il aurait dû être implémenté en premier lieu, il est juste dommage qu’Apple ne fasse pas partie de l’EDI; au lieu de cela, ils nous obligent à passer des décennies à faire fonctionner ces choses.

Je me suis débattu avec ce problème depuis plus d’une journée, 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 je rencontrais concernait une ancienne application que je n’avais pas touchée depuis plus de 3 ans, et j’étais sur le sharepoint publier une mise à jour très attendue. Depuis que j’ai publié l’application, Apple a mis à jour le fonctionnement des certificates et de l’ID d’application. Ils ont introduit le concept de Team Id qui semble être recommandé. En particulier, le site “Certificates, Identifiers & Profiles” d’Apple a connu beaucoup de changements depuis.

Je me suis rendu compte que le profil de provisioning que j’utilisais pour la dissortingbution App Store était connecté à l’ID d’application ED8xxxxxxx.com.rostsolutions.* Mais en regardant l’identifiant de l’application pour le jeu que je ATMxxxxxxx.com.rostsolutions.Swisch . Donc, le préfixe App Id ne correspond pas! Cela semblait être la racine du problème. Donc, ce que j’ai fait était de créer un nouveau profil d’approvisionnement connecté à l’App Id ATMxxxxxxx.com.rostsolutions.Swisch . En utilisant ce profil de provisioning, j’ai envoyé avec succès mon application à App Store et maintenant je croise les doigts pour que tout fonctionne bien du côté d’Apple.

(J’ai d’abord essayé de me connecter au nouveau profil Provisioning à l’identifiant générique ATMxxxxxxx.com.rostsolutions.* , Mais cela ne semblait pas fonctionner).

Mais ce qui me surprend, c’est que lorsque je regarde l’ancienne application dans iTunes Connects et que je passe aux détails binarys, cela ED8xxxxxxx.com.rostsolutions.Swisch que l’ID de l’application est ED8xxxxxxx.com.rostsolutions.Swisch . Alors, pourquoi la page “Certificats, identifiants et profils” répertorie-t-elle l’ID de l’application ATMxxxxxxx.com.rostsolutions.Swisch ?

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 ont été affichés dans le panneau de l’utilitaire Afficher les détails. J’ai choisi par erreur “Profil de provisionnement d’équipe Mac: *” au lieu du profil d’approvisionnement de dissortingbution réel du 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 corrects (par exemple, Maps). J’ai réussi à publier une application avec OSX Maps sans le droit et Apple l’a approuvé – mais aucune version de la version de production ne s’est révélée!

Dans mon cas, j’avais le même problème, ma solution consistait à changer le “Release Provisioning Profile” dans les parameters de build avant de lancer Archive. Je le fais deux fois, une fois pour la dissortingbution App Store et une autre pour la dissortingbution 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 d’archive”.

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

Il indique que ce problème peut survenir lorsque l’identifiant de l’ensemble de projets est différent de celui que vous avez saisi sur le site Web iTunes Connect .

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

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

1) Révoquer à la main tous les “Mac App Dissortingbution” et “Mac Installer Dissortingbution”
2) Nettoyer les certificates pertinents et les clés ouvertes dans le trousseau ( Attention: export avant suppression)
3) Redémarrez Xcode 4) Allez sur (dans Safari) developer.apple.com -> certificates etc. 5) Créez CertificateSigningRequest.certSigningRequest dans Keychain-> Assistant de certificate
6) Créez manuellement sur developer.apple.com à la fois “Mac App Dissortingbution” et “Mac Installer Dissortingbution” avec votre * .certSigningRequest
7) Profils de provisioning -> Dissortingbution -> créer / corriger une provision personnalisée pour AppStore (je l’ai spécialement nommé “profil de fourniture Mac pour AppStore”)
8) Xcode -> Paramètres -> Compte -> Votre compte -> Actualiser 9) Xcode Clean -> Archive -> Valider

Je me suis débattu avec un problème similaire (je construisais pour la dissortingbution Ad-Hoc). La seule chose qui a changé depuis le dernier déploiement réussi était l’ajout de deux périphériques au profil d’approvisionnement.

Après avoir vérifié tous les parameters de construction en double et en sortingple, j’ai régénéré le profil d’approvisionnement (sans rien changer), re-téléchargé et cela a fonctionné correctement.

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 quels profils d’approvisionnement vous avez sur votre ordinateur.

ERREUR ITMS-9000: «Ce bundle n’est pas valide. Les nouvelles applications et les mises à jour d’application envoyées à l’App Store doivent être construites avec les 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.

Si plusieurs développeurs utilisent le même compte de centre membre. L’un d’entre eux ne peut pas utiliser un certificate créé par d’autres utilisateurs car ils ont utilisé une demande de certificate créée à l’aide de leurs ordinateurs.

Vous devez utiliser un certificate créé par vous (demande de certificate créée à l’aide de votre ordinateur).

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

Signature de code Les droits sont dus au fait que votre ressource ne contient pas de fichier de droits dans les ressources. Il vous suffit d’aller à la création de parameters et à la signature de code. À votre santé

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 votre projet et les parameters de votre ou vos cibles, choisissez “Aucun” pour tous les profils de provisionnement et choisissez “Ne pas signer de code” pour toutes les identités de signature de code.

2) Maintenant, choisissez votre cible et allez créer des parameters. Dans le paramètre Code Signing Identity Release, choisissez “Dissortingbution iOS” pour “Any iOS SDK”. Ensuite, dans le paramètre Version du profil de provisionnement, choisissez votre profil de dissortingbution pour «Any iOS SDK». Après cela, le paramètre de validation de l’identité de signature de code doit automatiquement passer à “Dissortingbution iPhone”.

3) Archivez votre build et validez. Maintenant ça devrait bien marcher. C’est tout!