L'exécutable est signé avec des droits invalides dans Xcode

113

J'ai eu cette erreur avec Xcode 5 lorsque j'essaie d'exécuter l'application sur mon appareil.

L'exécutable a été signé avec un droit non valide

Cela fonctionnait bien avec Xcode 4.x. Quelqu'un sait comment se débarrasser de l'erreur?

entrez la description de l'image ici

Emmy
la source
J'ai Xcode 8.3.3 et cette réponse l'a fait pour moi: stackoverflow.com/a/40464055/4177294
Nuno MSB

Réponses:

102

Je me suis attaqué à ce problème pendant une heure et j'ai finalement trouvé un correctif. Il s'est avéré que l'équipe de développement était différente dans ProjectTarget et ProjectTests.

Krish Wadhwana
la source
13
Merci beaucoup! Cela m'a aidé et m'a fait gagner beaucoup de temps!
Marky
Hou la la! Merci @Krish
Kqtr
vous monsieur, je viens de sauver mon jeudi, je ne peux pas assez vous remercier
Samer Murad
où puis-je trouver ProjectTarget et ProjectTests?
Pablo
ah! trouvé! jours dessus et ce n'était pas juste cette configuration! ??
Pablo
77

Le redémarrage de Xcode a fonctionné pour moi.

RaffAl
la source
15
Xcode a donc adopté le correctif universel de Microsoft. ;) Pour mémoire, c'est toujours un problème et le redémarrage est toujours le correctif (j'utilise la v7.3.1).
Eric Soyke
3
un autre +1, affrontez à nouveau ce problème, puis google, j'ai atterri ici.
jayellos
Après des heures de vérification de chaque détail ... cela a fonctionné dans XCode 8
Matej Ukmar
Quelqu'un a-t-il une solution solide à ce problème !!!!, Toutes ces solutions ressemblent à des solutions de contournement situationnelles. Veuillez aider.
Max
En fait, faire de l'équipe de développement de projet et de l'équipe de développement de test de projet la même chose a fonctionné pour moi
Tahmid Rahman
35

J'ai découvert le problème. L'application que j'ai créée sur developer.apple.com n'inclut pas l'audio inter-app. Le fichier plist des droits de projet sur Xcode a inter-app-audio défini sur YES (par défaut). Une fois, j'ai modifié le paramètre de configuration de mon application sur developer.apple.com pour activer l'audio inter-application. Ensuite, mon application s'exécute sur mes appareils. Je suppose que c'est la nouvelle règle d'Apple pour rendre les paramètres de votre application cohérents à la fois sur developer.apple.com et sur les paramètres de votre projet xcode.

Emmy
la source
10
J'ai basculé la fonctionnalité audio inter-appli sur ON, puis à nouveau sur OFF, et de cette façon l'application a fonctionné ... WT *?
Ferran Maylinch
Wow, incroyable. Encore un correctif applicable, même si pour moi c'était la capacité des groupes d'applications.
Keller
Pareil ici! C'est super bizarre. Je suppose que vous pouvez basculer n'importe quelle capacité pour le résoudre.
Andre Simon
J'ai tout essayé face au même problème!, Toutes les suggestions
Max
24

J'ai pu résoudre ce problème en activant / désactivant le droit "Game Center" dans Xcode 5 :-)

Nik
la source
5
MERCI! Vous n'avez aucune idée à quel point j'étais frustré ce matin jusqu'à ce que je tombe sur votre réponse. Certainement réparé pour moi.
Gasper Kolenc
1
Sachez que Xcode générera un profil d'approvisionnement pour vous et invalidera votre profil d'approvisionnement de création personnalisé.
Van Du Tran
@VanDuTran non, ce ne sera pas le cas.
Nik
Cela s'est produit dans une application Xamarin également dans Visual Studio pour mac. Ce n'est donc pas seulement isolé de Xcode.
Dan Beaulieu le
19

Aucune solution n'a fonctionné pour moi jusqu'à ce que j'aie vérifié et défini la cible des tests d'application sur le même profil de provisionnement que l'application principale. Ou si vous utilisez le chant automatique, assurez-vous que la même équipe est sélectionnée dans la cible des tests.

Matej Ukmar
la source
Très bon point, cela se produit lorsque vous changez d'équipe dans la cible principale mais pas dans la cible de test. Changer l'équipe de la cible de test pour l'équipe de la cible principale a résolu le problème pour moi.
dan
Merci!! C'est ce qui a finalement résolu le problème pour moi. Les droits étaient un hareng rouge total.
Reid
19

Pour XCode 10, il peut être nécessaire d'utiliser le système de construction hérité

Le changement peut être effectué à partir des paramètres de fichier / projet. ERREUR ITMS-90174: "Profil de provisionnement manquant - Les applications iOS doivent contenir un profil de provisionnement dans un fichier nommé embedded.mobileprovision."

Une annonce cordova / ionique: https://github.com/apache/cordova-ios/issues/407

Chen Xing
la source
1
souhaite ajouter pour les utilisateurs de Cordova / Ionic que vous devrez peut-être également modifier votre projet Xcode généré pour utiliser le mode hérité par "Fichier> Paramètres du projet / espace de travail" et le changer en système Legacy Build "comme détaillé ici: stackoverflow.com/a / 52605878/2503520
Vyrnach
12

La solution pour le dernier Xcode :

Vous devez d'abord vérifier ce qui est activé dans votre centre des membres pour votre AppID spécifique :

entrez la description de l'image ici

Ensuite , dans votre cible appropriée dans Xcode vous devez activé les mêmes capacités: Dans ce cas: App Group, Game Center, In-App Purchase. Tous doivent être activés dans votre cible dans Xcode.

entrez la description de l'image ici

Cependant, cela n'a pas d'importance pour le mode DEBUG :

entrez la description de l'image ici

c'est très important pour votre mode RELEASE : entrez la description de l'image ici

Notez que Game Centeret In-App Purchasesont activés par défaut dans le Centre des membres mais sont désactivés dans la cible de Xcode.

Bartłomiej Semańczyk
la source
3
Est-il possible de supprimer Game Center et les achats intégrés à developer.apple.com?
Noitidart
11

Je pense que votre problème réside dans le profil que vous utilisiez xCode4.6 et que vous utilisez maintenant xCode5.

Vous devez actualiser les certificats / profils d'approvisionnement via XCode> Préférences> Comptes

XCode> Préférences> Comptes> Cliquez sur votre COMPTE DEV> Afficher les détails (en bas à droite)> L'écran Signing Iden / PPs apparaît> appuyez sur Actualiser.

Ensuite, choisissez à nouveau parmi les paramètres de construction le profil correct et nettoyez et créez votre projet.

J'espère que cela vous aide.

Manthan
la source
1
Merci de votre aide. J'ai découvert le problème. L'application que j'ai créée sur developer.apple.com n'inclut pas l'audio inter-app. Le fichier plist des droits de projet sur Xcode a inter-app-audio défini sur YES (par défaut). Une fois, j'ai modifié le paramètre de configuration de mon application sur developer.apple.com pour activer l'audio inter-application. Ensuite, mon application s'exécute sur mes appareils. Je suppose que c'est la nouvelle règle d'Apple pour rendre les paramètres de votre application cohérents à la fois sur developer.apple.com et sur les paramètres de votre projet xcode.
Emmy
6

Je devais faire correspondre les capacités de l'application dans Xcode5 sous

Capabilities -> 
In-App purchase -> ON
Game Center -> ON

avec cela dans le profil de provisoning.

Nithin Haridas
la source
Il a également résolu la réponse d'erreur "jeton invalide" des APN.
hiroshi
l'ajout d'un droit au centre de jeu et sa suppression ont également fonctionné pour moi. Je ne sais pas pourquoi.
Rukshan Marapana
5

xcode 6.1 (exemple HealthKit)

J'obtenais cette erreur en raison de l'intégration de HealthKit: j'avais activé l'achat intégré, le Game Center et Healkit ont résolu mon problème .. Le même que j'ai activé dans le profil de provision.

entrez la description de l'image ici

entrez la description de l'image ici

Vinod Joshi
la source
J'ai dû faire de même pour le partage de trousseau. J'avais aussi une extension d'application, je devais le faire dans les deux endroits pour que ça marche.
CaseyB
5

(Xcode 6.1)

Le problème pour moi était dans mes paramètres de construction; Mon profil de provisionnement était défini sur un profil de production App Store lors de la tentative de déploiement sur un appareil. Je l'ai commuté sur «Automatique» et cela a résolu mon problème. Vous pouvez également le définir sur votre profil Dev Provision.

J'ai également 2 certificats, j'ai donc ajouté mon deuxième certificat à ma disposition de développement. D'autres n'auront probablement pas ce problème.

Ian Newland
la source
Merci! Le passage à `` Automatique '' l'a fait pour moi
Emastmagy MastMagy
Étrange que le passage à automatique ait résolu le problème, mais cela a fonctionné pour moi. Mon profil d'approvisionnement était défini sur com.mycompany. * Et j'obtenais cette erreur. Il y avait FixMe rouge sous l'onglet Capabilities, mais après avoir résolu ces problèmes, j'ai toujours reçu l'erreur de droits invalides. J'ai ensuite essayé de changer mon profil d'approvisionnement de com.mycompany. * En automatique et cela a résolu le problème. J'ai vérifié que le bundleID est com.mycompany.blabla, il semble donc y avoir une sorte de bogue Xcode. J'utilise Xcode 6.3.2.
Jim Range
5

J'ai eu un problème similaire lorsque j'ai mis à jour vers Xcode 10, j'ai résolu le problème en allant dans Fichier> Paramètres du projet, dans l'option "Nouveau système de construction", sélectionnez "Système de construction hérité". Cela a fait le tour pour moi, j'espère que cela aide quelqu'un.

José Rojas
la source
4

Un simple nettoyage et une construction ont semblé résoudre le problème pour moi.

Maxwell
la source
C'était aussi une solution pour moi.
Enijar
4

Si ce problème est le même que moi.Vous oubliez peut-être de définir l'équipe dans unittest dans votre projet cible, essayez de faire cette image

entrez la description de l'image ici

Papon Smc
la source
3

Je résous ce problème en supprimant tout "PROVISIONING_PROFILE=..."et "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...dans project.pbxproj , redémarrez Xcode et définissez à nouveau les profils d'approvisionnement pour la cible.

BébéPanda
la source
3

Si le redémarrage de xcode ne fonctionne pas, créez un nouveau profil d'approvisionnement et assurez-vous d'inclure vos appareils de test.

mohammad alabid
la source
Le redémarrage / nettoyage n'a pas fonctionné pour moi, mais j'ai réalisé que je n'avais pas ajouté mon nouveau téléphone de test au profil Ad Hoc que j'utilisais pour créer. J'ai régénéré / téléchargé un profil mis à jour et l'erreur a disparu. Remarque: vous pouvez obtenir une erreur de «sécurité» après avoir fait cela, ce qui signifie que l'appareil a besoin que vous autorisiez l'application, appuyez simplement sur l'application sur l'appareil pour que l'alerte «développeur de confiance» s'active.
SafeFastExpressive
3

Dans mon cas, l'appareil n'a pas été ajouté. J'ai donc dû ajouter l'appareil et générer un nouveau profil d'approvisionnement.

Xavi Valero
la source
3

Une autre chose à vérifier - assurez-vous d'avoir les bonnes entités sélectionnées dans les deux

Cibles -> Votre cible -> Paramètres de construction -> Signature

et

Projet -> Votre projet -> Paramètres de construction -> Entité de signature de code

J'ai reçu ce message lorsque j'avais un profil de développement complet sélectionné dans l'un et un autre identifiant Apple (non-développeur) sélectionné dans l'autre, même sans aucun droit demandé dans l'application.

CupawnTae
la source
2

Cela semble être un petit bogue dans Xcode. Essayez de l' archiver quand même, même s'il y a un problème avecentitlements . Si vos droits sont bons, ils seront téléchargés sans aucun problème. Apple l'accepte et votre application sera publiée sur l'AppStore.

Je l'ai fait et ça a marché:)

Bartłomiej Semańczyk
la source
2

Cela pourrait également être dû à un mauvais schéma.

Saurabh Bisht
la source
1

J'ai eu le même problème dans XCode 5. Cela m'a aidé de toute façon.

XCode > Preferences > Location tab > DerivedData

Appuyez sur une petite flèche gauche pour ouvrir DerivedData dans Finder. Déplacez-vous dans le dossier corbeille de votre projet et reconstruisez-le.

Capture d'écran

Prcela
la source
Je suppose qu'il devrait y avoir un raisonnement approprié sur la raison pour laquelle la suppression des données dérivées résoudra le problème.
Kavita
1

Eu un problème. Résoudre: allez à la bonne cible -> fonctionnalités -> pour moi, il y avait un problème avec "In-App Purchase" et un bouton pour le résoudre. Problème résolu lors du fonctionnement désactivé.

Anton Plebanovich
la source
1

Dans mon cas: je dois activer Inter-App Audio dans

Capabilities -> Inter-App Audio

Je pense que parce que j'utilise Parse.com Notification, il faut un lien vers AudioToolbox.framework

Nguyen Tran
la source
1

Capacités d'activation -> Inter-App Audio a également résolu ce problème pour moi. J'essaie également d'envoyer des notifications push via l'analyse

jstn
la source
1

Les réponses ici semblent un peu inadéquates, alors j'ajoute mes deux cents:

La vraie solution est qu'il y a généralement un décalage entre ce qui est stocké dans votre profil d'approvisionnement (vérifiez sur developer.apple.com -> membres -> certificats -> le certificat que vous utilisez [assurez-vous de vérifier si dev / production) et ce qui est activé dans votre application (double-cliquez sur le nom du projet), dans le menu horizontal, sélectionnez «Capacités» (à côté de «Général»).

Si vous avez récemment modifié l'un de ceux-ci, assurez-vous d'actualiser vos certificats sous XCode -> Préférences -> Comptes -> Détails -> Icône d'actualisation et redémarrez XCode.

Jdero
la source
1

Dans mon cas, le certificat APNS a expiré, supprimez le certificat expiré et régénérez le profil d'approvisionnement corrige le problème.

BillChan
la source
1

Dans mon cas, j'ai dû accepter le contrat de licence Apple Developer.

Connectez-vous au compte de développeur Apple et observez le message de notification similaire à celui ci-dessous.

"Le contrat de licence du programme pour développeurs Apple a été mis à jour. Afin d'accéder à certaines ressources d'adhésion, **** doit accepter le dernier contrat de licence avant le 28 juin 2016."

Auparavant, je ne pouvais pas ajouter / modifier des conteneurs iCloud à l'ID d'application bien que j'aie changé / vérifié les capacités, les profils d'approvisionnement, les certificats, etc. Après l'accord du contrat, les choses ont commencé à fonctionner correctement.

Espérons que cela permettrait à quelqu'un de gagner un temps précieux.

Danboz
la source
1

J'ai rencontré exactement le même problème récemment. Après avoir lu de nombreux conseils différents dont aucun n'a fonctionné pour moi, je suis finalement passé sous le capot et j'ai trouvé la cause profonde du problème.

Le fichier d'approvisionnement mobile ne correspond en fait PAS au fichier de droits généré par Xcode.

Bien que tous les fichiers soient automatiquement gérés par l'outil Apple, ils ne sont pas corrects.

Si vous téléchargez le fichier d'approvisionnement à partir du portail Apple et que vous l'ouvrez (vous pouvez l'ouvrir car il s'agit simplement d'un fichier plist signé par votre certificat, il est donc lisible par l'éditeur de texte) et comparez-le avec votre fichier de droits (généré automatiquement par Xcode et résidant dans des fichiers de projet (donc c'est à nouveau un fichier XML plist lisible par l'éditeur de texte.) Ensuite, vous pouvez voir la différence.

Dans mon cas, c'était le droit à Game Center. Il était affiché sur le portail comme coché (coché par défaut), mais en réalité, ce droit n'était pas inclus dans le fichier d'approvisionnement mobile. Il s'agissait donc de le supprimer du fichier des droits.

Le résultat est donc que le contenu du profil d'approvisionnement mobile ne correspond parfois pas à ce qui est affiché sur la page de configuration de l'ID APP.

Radek
la source
1

Pour ceux qui ont le même problème avec Provisioning Profile Automatic dans les paramètres de build cibles:

Soyez très prudent lorsque vous modifiez votre fichier de droits cibles! Cela peut interrompre la correspondance avec le profil d'approvisionnement généré automatiquement et vous obtiendrez cette erreur.

Dans mon cas, j'ai dû utiliser temporairement les conteneurs de production iCloud avec des versions de débogage. Pour ce faire, j'ai inséré

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>  

dans le fichier des droits et cela a fonctionné!
Pour me rappeler que j'ai dû plus tard supprimer ces lignes, j'ai encore inséré simplement le commentaire suivant:

<key>TODO</key>
<string>The entry below must be out commented or deleted to use the iCloud development environment.</string>  

Et cela a rompu la correspondance et créé l'erreur .

Reinhard Männer
la source
Où se trouve le fichier des droits?
Noitidart
Il se trouve dans le dossier de votre projet et s'appelle «yourProject.entitlements». Vous pouvez le trouver dans le navigateur de projet de Xcode.
Reinhard Männer
Merci. il semble qu'il n'a pas été créé jusqu'à ce que je vérifie puis décoché "audio inter app". J'ai un centre de jeu et des achats intégrés sur developer.apple.com mais je ne l'utilise pas, ce sont des valeurs par défaut. J'ai donc marqué mes capacités dans xcode comme "on" mais peu importe ce que je continue à obtenir le "L'exécutable a été signé avec des droits invalides." Erreur. :(
Noitidart
1

J'utilise la notification push dans mon application et une fois le développement terminé, j'ai essayé de tester la notification push pour la configuration de la version . À ce moment-là, j'ai eu cette erreur.

J'utilisais le profil de provisioning de production pour exécuter la version . J'ai donc pu résoudre cette erreur en utilisant Adhoc Provisioning Profile.

Mahesh
la source