web-dev-qa-db-fra.com

ERREUR ITMS-90164/90046: droits de signature de code non valides

Note: Je développe sous Xamarin. Question similaire publiée dans Forum Xamarin ici

Je crée une application appelée, par exemple CompanyApp. Ensuite, j'ai créé un identifiant d'application pour ce fichier com.Company.CompanyApp, ainsi qu'un profil d'approvisionnement de distribution qui utilise l'identifiant d'application correspondant. J'ai téléchargé le fichier binaire et cela a fonctionné parfaitement bien.

Ensuite, je suis allé créer une version de démonstration de l'application (essentiellement la même application avec une petite modification, c'est donc la même solution et le même projet, avec juste un paramètre de signature de paquet différent), CompanyAppDemo avec un nouvel ID d'application com.Company. .CompanyAppDemo, avec un nouveau profil d'approvisionnement de distribution qui utilise le nouvel ID d'application. J'ai mis à jour les options de signature d'ensembles iOS pour utiliser le nouveau profil d'approvisionnement et généré l'IPA. Mais quand j'ai téléchargé ceci dans Application Loader, j'ai eu l'erreur suivante:

[2015-01-23 16:08:21 SGT] ERREUR: ERREUR ITMS-90164: "Code invalide Droits de signature. Les droits dans la signature de votre groupe d'applications ne correspondent pas à ceux contenus dans la configuration. profile . Selon le profil d'approvisionnement, le bundle contient une valeur de clé .__ non autorisée: "TEAMID.com.Company.CompanyApp" pour la clé "identifiant d'application" dans "Payload/CompanyApp .app/CompanyApp '"

[2015-01-23 16:08:21 SGT] ERREUR: ERREUR ITMS-90046: "Code non valide Droits de signature. La signature de votre groupe d'applications contient des droits de signature de code Qui ne sont pas pris en charge sur iOS. Plus précisément ,. La valeur __ 'TEAMID.com.Company.CompanyApp' pour la clé 'identificateur d'application' dans 'Payload/CompanyApp.app/CompanyApp' n'est pas prise en charge. Cette valeur doit être une chaîne commençant par votre TEAMID, suivi d'un point '.', suivi de l'identifiant du paquet. "

Cela fait des jours que je débogue pour comprendre en vain.

Je me demande pourquoi, lorsque j'ai signé avec le nouveau profil , L'erreur générée par Application Loader fait référence à l'ID de l'original TEAMID.com.Company.CompanyApp au lieu de TEAMID.com.Company.CompanyAppDemo? Est-ce un problème dans Xamarin qui détecte un mauvais profil d'approvisionnement ou est-ce que quelque chose me manque? Vous n'avez pas besoin d'un certificat différent pour une application différente, n'est-ce pas?

Notez que j'ai toujours actualisé la liste de profil de provisioning dans XCode> Préférences avant de modifier l'option de génération de signature iOS dans Xamarin.

76
yonasstephen

Enfin après 2 semaines de tirage de cheveux ..

Pour certaines raisons, s'il n'y a pas de clé 'application-identifier' dans Entitlements.plist définie sur TEAMID.com.Company.CompanyAppDemo , Xamarin utilisera l'identifiant d'application d'origine, à savoir TEAMID.com. .Company.CompanyApp

La solution a donc été d'ajouter un identificateur d'application en spécifiant l'ID de regroupement d'applications correct dans Entitlements.plist. Ensuite, incluez le plist dans Options de construction> Signature de paquet iOS.

17
yonasstephen

Si quelqu'un arrive ici en cherchant ERROR ITMS-90046 comme moi, ma solution consistait à le nettoyer, à supprimer tous les frameworks précompilés (ceux personnalisés), puis à reconstruire à nouveau.

Remarque: La description de l'erreur indiquait quelque chose à propos de la clé "environnement-aps" en tant que "développement".

 Edit: The actual error message

132
quarac

J'ai eu le même problème et résolu avec un simple Produit -> Nettoyer .

62
David P

Si quelqu'un arrive ici en recherchant à la fois les erreurs ITMS-90164 et ITMS-90046 avec les clés get-task-allow _ et environnement-asp:

1

Comme David P l'a dit, un Produit -> Nettoyer avant qu'une nouvelle archive ait résolu mon problème.

Je veux juste ajouter que dans mon cas, j'ai observé que le fichier suivant manquait à xarchive:

2

Avant d'envoyer ce fichier .xarchive à votre client pour la signature de production, vous souhaiterez peut-être rechercher le fichier archived-Expand-literlements.xcent et vous assurer qu'il est présent.

19
Bluezen

Même problème et résolu avec un simple Produit -> Nettoyer .

8
Adrien Brecheteau

Cela peut également être dû au fait que vous devez accepter un nouveau contrat dans iTunes connect. Connectez-vous à iTunes Connect et vous devriez voir une bannière en haut vous invitant à accepter le dernier changement de contrat.

5
RickiG

Changez ceci dans Entitlements.plist:

<key>aps-environment</key>
<string>development</string>

Pour ça:

<key>aps-environment</key>
<string>production</string>
5
KalleP

Pour moi, le problème était un Entitlements.plist ajouté automatiquement et vide. Supprimez-le du champ Droits personnalisés et résolvez le problème.

 View of the iOS Bundle Signing on Visual Studio 2015

4
Cássio

Si vous ne sélectionnez pas le certificat de version correspondant avant d’emballer, ERROR ITMS-90164 sera signalé. 

Paramètre de construction -> Identité de signature de code -> Libérer -> N'importe quel SDK IOS 

3
user5938649

Assurez-vous que vous avez sélectionné la cible de l'application et non l'application WatchKit lors de l'archivage.

2
Ric Santos

Aucune des autres réponses n'a résolu cette erreur pour moi, mais ceci a eu les conséquences suivantes:

  1. Créez une nouvelle application XCode et allez examiner ses paramètres de signature de code.

  2. Essayez de configurer votre application de la même manière que les paramètres de signature et d’approvisionnement XCode 7 ou Xcode 8 par défaut. XCode 7 est affiché ici, il a été modifié à nouveau dans XCode 8.

 provisioning and signing

  1. Si ce qui précède ne suffit pas, vous devrez peut-être le refaire, mais cette fois-ci, supprimez tout ancien profil de provisioning expiré de votre trousseau de clés Apple ou supprimez-le et connectez-vous de nouveau à votre compte de développeur Apple (iTunes) dans le code préférences. Assurez-vous de quitter Xcode et de redémarrer après toute modification. Ajoutez ensuite votre compte à nouveau et laissez XCode récupérer vos nouvelles informations de signature et de groupe.
2
Warren P

Un projet comprenant 2 cibles (avec 2 ID développeur, 2 droits d'accès) peut conduire à ceci . (Ne me demandez pas comment c'est arrivé ...)

Lors de l'archivage, supprimez temporairement un autre fichier de droits.

1
hstdt

J'avais essayé de télécharger une version d'une branche de git qui n'était pas le maître. Pour résoudre le problème, j'ai fusionné la branche dans le maître et créé à nouveau. J'ai ensuite pu télécharger la construction avec succès.

1
Kurt Anderson

Je viens de renommer en droits.plist la valeur des domaines d'accès de applinks: htts: //domain.app.link à applinks: domain.app.link cela fonctionne comme un charme. À votre santé! 

1
Sathish

J'ai essayé tout ce qui est énuméré ici, mais le problème était dans mon fichier .entitlement. Il y avait des lignes que je n'avais jamais insérées, mais elles ont été ajoutées d'une manière ou d'une autre.
Supprimé ces lignes et réessayé, travaillé.

1
Nolan.K

Faire un Xcode approprié 'Quitter' puis redémarrer était la dernière action qui l'a fait fonctionner pour moi.

J'avais changé l'identifiant du paquet (pour une version de démonstration) et j'avais la même erreur (comme détaillé dans la question) lors de la vérification de ma construction archivée. J'utilise Xcode. Juste fermer Xcode et rouvrir mon projet ne suffisait pas, mais un «Quitter» complet l'était. Quelque chose a probablement été caché quelque part, je devine.

1
Marcus

Après de nombreuses heures d'investigation, j'ai trouvé une solution facile. 

Au lieu d'utiliser le chargeur d'application pour télécharger l'application, j'ai utilisé l'Organiseur à partir de XCode et cela fonctionnait sans aucun avertissement lors du téléchargement!

0
Sebastien Filion

Mon problème est que j'utilisais un mauvais paquet pour créer un fichier IPA

0
Netero

Pour moi, j'ai pu résoudre le problème en activant/réactivant la fonction de signature automatique du code:

 enter image description here

0
Dave G

Mes deux cents ici.

En ce moment, je suis coincé dans ce problème car, lorsque je copie mon ID TeamID/Application à partir du portail de développeurs Apple, ce qui apporte de nombreuses valeurs sans lien à celle-ci. Je ne l'avais pas remarqué parce que j'utilisais Xcode pour éditer le fichier allowlement.plist et que le champ de saisie n'affichera pas tout après le premier caractère de nouvelle ligne.

Je suggère d'utiliser un éditeur de texte en clair pour le droit right.plist dans ce cas.

Merci Samuel

0
Samuel Leung
  1. Allez à Build Phase dans Xcode
  2. Supprimer tous les cadres
  3. Les rajouter
  4. Maintenant, construisez-> Archieve-> Upload dans l'App Store

Hourra, vous en avez fini. Problème résolu

0
Mehul Thakkar

Pour moi, le fichier que je me suis trompé était défini dans le paramètre Droits personnalisés sous Signature de paquet iOS. Supprimé et cela a fonctionné!

0
JP Hochbaum

Vous devriez vérifier vos droits. C'est comme un fichier plist. Modifiez-le en développement et supprimez les champs supplémentaires.

entrez la description de l'image ici

0
Rajesh Gaddam

J'ai eu exactement le même problème et c'était une erreur assez stupide. Je ne veux pas que quelqu'un passe du temps là-dessus, alors pour celui-ci:

 Mistake

Donc, ce qui s’est passé ici, c’est que j’ai inscrit «10» dans la cible de déploiement. Cela aurait dû être 10.0 à la place. C’est ce qui a provoqué la tristement célèbre ERREUR ITMS-90164/90046: Droits de signature de code non valides pour moi!

0
Benjamin de Bos