4 votes

Problèmes de profil de provisionnement

Lorsque j'essaie de télécharger mon application, j'obtiens cette erreur dans Application Uploader "Application failed codesign verification. La signature n'est pas valide, contient des droits non autorisés ou n'a pas été signée avec un certificat de distribution iPhone".

Si j'ouvre MonoDevelop, les propriétés et sélectionne "iPhone bundle signing", alors je vois un "Provisioning profile", mais si je clique sur un autre sujet (par exemple Crash report) et retourne à "Provisioning profile", alors il y a soudainement "Unknown" et un guid.

Comment puis-je dire à MonoDevelop d'utiliser le bon profil de provisionnement ?

J'ai supprimé quelques anciens profils (dans l'Organisateur), mais ils apparaissent toujours dans MonoDevelop.

7voto

Emanuele Sabetta Points 1096

Malheureusement, l'"enfer de l'approvisionnement" créé par le système de signature d'Apple est encore pire dans MonoDevelop.

Il n'y a pas de gestionnaire de provisionnement, pas de moyen de configurer et d'associer tous les profils de provisionnement et les clés à une application monotouch spécifique. MonoDevelop n'a pas d'assistant pour créer automatiquement ou guider l'utilisateur dans la création, le téléchargement ou la sauvegarde des bons profils, clés et appIDs.

La meilleure façon de savoir si un profil ou une clé est erroné, expiré, incompatible avec un appId, ou rejeté, est de les vérifier manuellement dans l'Organisateur XCode (vous pouvez le trouver dans le menu "Fenêtre" de XCode).

Une fois dans Organizer, vous devez cliquer sur la section LIBRARY -> Provisioning Profiles sur la gauche, puis cliquer sur le bouton Refresh pour synchroniser vos profils avec le serveur Apple (si vous avez ces profils dans vos fichiers ou si vous êtes sur un autre ordinateur de développement et que vous ne devez installer que certains profils, cliquez sur le bouton Import et sélectionnez manuellement les fichiers).

Ensuite, vous devez attacher votre appareil ios et lorsqu'il apparaît dans le nom DEVICE->votre_iPhone_ou_Ipad... vous devez glisser et déposer les profils de provisionnement dont vous avez besoin depuis la BIBLIOTHÈQUE->Profil de provisionnement vers le nom DEVICE->votre_iPhone_ou_Ipad->Profils de provisionnement....

De toute façon, beaucoup de choses peuvent mal tourner, en particulier le fait de mélanger les anciens profils avec les nouveaux profils prenant en charge iCloud ou d'autres fonctionnalités avancées de l'application. Il n'y a aucun moyen de savoir si l'identifiant d'un bundle est valide, si les droits sont autorisés, si un profil ou un appID est activé ou non pour utiliser iCloud, les notifications, l'IAP, etc. ou s'il est enregistré pour Developer, AdHoc ou Distribution, et avec quelles chaînes d'identifiants de produits il est compatible. Il faut procéder par essais et erreurs. Même la simple création d'une version ad hoc de votre application pour un testeur distant de confiance est un chemin long et périlleux. Il n'y a pas de gestionnaire de profils d'utilisateurs et de testeurs dans MonoDevelop, vous devez vous rappeler ce qui va avec qui à chaque fois.

Si vous êtes sur une autre machine de développement, vous devez également installer les clés de développement enregistrées dans le KeyChain local (je vous conseille de faire une sauvegarde de ces clés quelque part : si vous perdez ces clés, vous ne pourrez plus mettre à jour votre application à l'avenir !)

Espérons que Xamarin ajoutera bientôt un gestionnaire de profils et de clés.

5voto

jonathanpeppers Points 12694

@Emanuale en mentionne beaucoup, mais il prend la route la plus longue pour beaucoup d'entre eux.

Il existe une façon plus simple de procéder. Voici l'approche la plus simple :

  • Se connecter le portail de provisionnement sur le web
  • Créez un identifiant d'application pour votre entreprise sous la forme "com.yourcompanyname.*"
  • Créer un profil de provisionnement pour cet identifiant d'application pour le développement et la distribution.
  • (Je vous recommande également de supprimer tous les profils dont vous n'avez pas besoin)
  • Ouvrez XCode->Mon Organisateur, et appuyez sur le bouton d'actualisation dans le coin inférieur droit (vous verrez apparaître tous vos profils en ligne).
  • Déployez votre application sur l'appareil à partir de MonoDevelop (assurez-vous que l'ID de votre bundle est com.yourcompanyname.yourappname).

C'est la façon la plus simple de procéder. Il n'est pas nécessaire de s'occuper des paramètres du profil de provisionnement dans MonoDevelop, les valeurs par défaut devraient fonctionner.

Le seul problème est que vous devez prendre en charge les notifications push. Le profil com.yourcompanyname.* ne fonctionnera pas, vous devrez créer un profil spécifique à chaque application dans ce cas.

1voto

matrix3003 Points 41

Excellente réponse, Jonathanpeppers ! Juste un 2c, maintenant XCode->My Oganizer es Préférences->Comptes

0voto

Geir Smestad Points 1164

Si la réponse acceptée ne vous aide pas, vous devez également vous assurer que votre identité de signature correspond au profil de provisionnement que vous utilisez et qu'elle dispose d'une clé privée. Ceux-ci peuvent être intervertis si vous avez plusieurs certificats de signature installés, et vous ne pourrez pas faire la différence à partir de Xamarin Studio. Voir

https://stackoverflow.com/a/37856762/660194

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X