Signataire pas d'erreur valide
-
13-09-2019 - |
Question
J'ai créé une construction ad hoc de mon application et je voudrais une autre personne pour l'installer. Je leur appareil ID (deux en fait) dans le profil de provisionnement. Mon certificat est le même pour l'approvisionnement ad hoc et de l'app store. Le certificat est valide dans le trousseau. J'ai choisi le profil ad hoc dans Xcode pour cette construction, qui est lié au certificat de distribution.
J'envoie l'utilisateur le fichier de provisionnement et le fichier .app. Ils laissent tomber les deux dans iTunes et synchroniser ensuite obtenir cette erreur sur les deux appareils:
The application "myapp" was not installed on the iPhone "user's iPhone" because the signer is not valid.
Je l'ai enlevé tous les profils de mon iPhone, laissé tomber les deux fichiers ci-dessus dans iTunes, et installé l'synchronisés application avec succès. Je ne peux pas à repro pour moi. Je dois repro ce problème au niveau local pour comprendre la question. Toute idée comment cela peut être fait?
La solution
Avez-vous ajouté Entitlements? Mettez la signature au niveau cible, pas le niveau du projet? Sélectionnez le profil ad hoc? Faites un nettoyage avant la construction? Sélectionnez le périphérique ad hoc ennemi l'accumulation?
Le meilleur pari est de suivre la documentation d'Apple exactement , obtenir vos paramètres de construction exactement Match d'Apple.
Autres conseils
Il est une bonne idée de vérifier le fichier imbedded.mobileprovision qui est livré dans le fichier .app pour vous assurer que l'UID est là-dedans. Il suffit de faire ce qui suit:
- Décompressez ProblemApp.ipa
- cd Payload / ProblemApp.app
- pico imbedded.mobileprovision
Recherchez l'UID de votre appareil dans ce fichier. Si c'est pas là, il est probablement pas ajouté au fichier d'approvisionnement dans le portail.
A partir de la documentation:
Construire une application pour Ad Hoc la distribution est similaire à la construction d'un application pour la distribution App Store, avec une exception de deux étapes supplémentaires. Tout d'abord, vous devez créer un groupe ad hoc Répartition profil de provisionnement et ajouter les UDID des appareils iOS qui vous voulez distribuer à l'aide de la Programme iPhone Developer Provisioning Portail. Deuxièmement, vous devez créer un fichier-signature de code Entitlements. Pour informations sur la façon de créer un fichier lu la Gestion Entitlements section d'application de Entitlements le Guide de développement iOS.
Gestion de l'application Entitlements
iOS permet d'accéder à particulier des ressources et des capacités telles que si votre demande peut être propriétés débogué-through appelé droits. Pour spécifier le droit informations dans votre application, vous ajouter un fichier de liste de propriétés droits contenant des définitions de versement (clés / paires de valeurs) à votre projet. Lorsque vous créez votre application, Xcode copie le fichier généré paquet d'application.
Pour ajouter une propriété liste des droits fichier à votre projet:
Dans la liste des groupes et des fichiers, sélectionnez le groupe de ressources. Choisissez Fichier> Nouveau Fichier. Choisissez la signature de code iOS>> modèle Entitlements. Nom du fichier Entitlements.plist. (Vous pouvez utiliser tout Nom; juste vous assurer qu'il correspond à la valeur du Code Signing construire Entitlements réglage, comme expliqué plus loin dans ce section.) Régler le type de fichier-liste de propriétés pour iPhone Droits. Avec le fichier sélectionné dans l'éditeur de texte, choisissez Affichage> Liste Type de propriété> iPhone Plist Entitlements.
Ajoutez vos entrées au droit à l fichier. Pour chaque propriété de droit vous devez définir:
Cliquez sur l'enfant ou Ajouter Sibling boutons situés à droite du sélectionné rangée. Le bouton Ajouter enfant a trois lignes représentant une hiérarchie, Ajouter bouton Sibling a un plus (+) signer il. Choisissez la propriété droit dans le menu contextuel qui apparaît. Si le droit dont vous avez besoin d'ajouter ne figure pas dans le menu, choisissez Voir> Liste des propriétés de type> Par défaut pour le type de fichier. Entrez ensuite le nom clé droit et le type.
Entrez la valeur de la propriété. Ensemble les droits de signature de code construire réglage de la cible au nom de les droits nouvellement ajoutés fichier-liste de propriétés.
Une fois que vous ont créé votre fichier Entitlements et ajouté à votre code de signature Réglage construire Entitlements, ouvrez le fichier et ajouter ou Entitlements modifier la get-tâches permet la clé et le mettre à faux.
En plus de la compression de votre .app bundle pour distribuer votre construction ad hoc aux testeurs, etc., il est recommandé que vous compressez aussi profil d'approvisionnement avant la distribution parce que certains e-mail les clients et les serveurs peuvent corrompre les profil d'approvisionnement.
Pour plus d'informations sur Ad Hoc la distribution s'il vous plaît lire la Publication d'applications pour les essais section dans le Guide de développement iOS.
Je suis tombé sur ce problème récemment avec un testeur sur une construction récente. Il est avéré que mon modèle d'essai avait réinitialiser leur iPod Touch et retiré le profil de provisionnement dans le processus.
Juste quelque chose à considérer.
Je suis cette erreur en faisant quelque chose plus bête que quelqu'un d'autre a posté. J'ai ajouté de nouveaux périphériques au profil, mais il a oublié de télécharger la version mise à jour, ajouter à Xcode, et diriger le projet à lui. Lorsque je l'ai mis en place correctement, les testeurs ont pu installer l'amende app.
Voici un autre plaisir .... si vous avez des fichiers séparés pour l'admissibilité iPhone et iPad, assurez-vous de définir la cible pour le fichier pour chaque version spécifique ... sinon il ne sera pas affiché dans la construction et vous ll obtenir cette erreur
Je suis arrivé ici parce que j'ai eu le même problème que l'OP. Il en effet avéré que je n'avais pas le UDID dans le dossier des droits et privilèges, même si je suis sûr que je refresh dans l'organisateur de XCode. Un autre rafraîchissement ne fait aucune différence.
En fin de compte j'ai supprimé tous les profils d'approvisionnement et puis fait un rafraîchissement. Les choses fonctionnent maintenant.
Je ne sais pas si cela est un petit problème dans ma configuration, ou une erreur de l'opérateur. Mais juste au cas où quelqu'un se trouve ailleurs dans cette situation. Il peut payer pour retirer vos profils de provisionnement puis effectuez un rafraîchissement
Cela ne fonctionne pas pour moi avec un IOS en cours d'exécution iphone 3G 3.1.3. J'ai vérifié que le profil de distribution n'a pas été sur le téléphone en regardant Paramètres-> général (il n'y avait pas d'option de profil indiqué).
J'ai ensuite installé l'utilitaire de configuration iPhone:
http://support.apple.com/kb/DL851
Alors:
- run config iphone
- glisser-déposer le fichier embedded.mobileprovision à l'application
- cliquez sur périphérique sur le côté gauche
- cliquez sur l'onglet "profils de provisionnement"
- Cliquez sur le profil, puis cliquez sur le bouton « installer »
Ensuite, l'application installée très bien.
J'ai eu le même problème que l'OP aussi. erreur stupide: Je accidentellement laissé tomber les deux derniers chiffres de l'appareil que je tentais ad hoc à distribuer lorsque je me suis inscrit comme périphérique
. Je suis même problème deux fois (xcode 4.2 ios 5
)
1er, j'ai oublié le temps d'ajouter ARMv6 dans l'architecture
2, le temps que j'ai créé de nombreux fichiers d'approvisionnement avec la même ID de développeur que je devrais supprimer d'autres porte-clés en fonction de l'utilisation de l'identificateur de paquet ... et je supprimé par erreur valide et utilisé d'autres kechain