Les droits spécifiés… profil. (0xE8008016). Erreur iOS 4.2

142

J'obtiens l'erreur `` redoutée '' The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016).lorsque j'essaye de déployer ma première application sur un appareil non jailbreaké sous iOS 4.2.6 (Verizon). Le fait est que je n'en ai pas Entitlements filedans mon projet, car je ne le distribue pas du tout, je ne le mets que sur un seul appareil. J'ai parcouru tous les obstacles et toutes les boucles que Apple vous soumet (certificat, appareil, approvisionnement) à la lettre, et je ne peux pas comprendre ce qui ne va pas.

Quelqu'un peut-il m'aider s'il vous plaît avec ce problème?

Richard J. Ross III
la source
15
C'est étrange, j'ai un vote défavorable. La personne qui a fait cela pourrait-elle expliquer?
Richard J.Ross III
Cette question m'a vraiment aidé parce qu'il est avéré que je fait avoir un fichier de droits (et vous le mentionner m'a fait savoir). La suppression de la référence dans Build Settings > Code Signing > Code Signing Entitlementsm'a permis de construire ce projet.
Geoff

Réponses:

64

Je viens de rencontrer ce problème moi-même, le problème était que j'avais un fichier Entitlements.plist dans le projet dans le cadre d'une distribution ad hoc, et sa propriété get-task-allow (c'est-à-dire `` peut être débogué '') était définie sur NON - le paramétrer sur OUI a résolu le problème et a permis à l'application de s'exécuter à partir de Xcode4 sur l'appareil en développement.

Naturellement besoin de le remettre sur NON pour les distributions ad hoc, mais j'ai juste pensé le mentionner au cas où quelqu'un d'autre rencontrerait le même problème.

artisanat
la source
Merci - cela a finalement résolu mon problème.
EasyCoder
Je vous remercie! Cela me tuait.
alan
"get-task-allow = NO" a permis à mon application de voir iCloud, lorsqu'elle est distribuée sous AdHoc ipa.
Tertium du
7
En passant, vérifiez que vous spécifiez exactement l'identité de signe correcte dans Target -> Build Settings , pas dans Project . La cible remplace le projet . J'ai oublié cela et j'ai un message d'erreur 0xE8008016.
Tertium
Encore une chose, si votre application utilise 'iCloud Key-Value Store' dans les droits, vous devez supprimer cette clé pour la version Debug. Sinon, l'application ne fonctionnera pas sur votre appareil et continuera à donner cette erreur même si vous avez défini `` get-task-allow '' sur OUI.
strangetimes
50

J'ai eu ce problème avec Xcode 4.2.1.

Pour moi, cela n'avait rien à voir avec le fichier des droits, ou Ad-hoc ...

Je revenais à un ancien projet et j'avais oublié d'ajouter mon nouvel iPhone à la disposition.

Erreur idiote, mais aussi un message d'erreur correspondant idiot ...: - /

Cisailles
la source
7
Erreur stupide que nous avons apparemment fait tous les deux.
Patrick Bassut
5
J'aimerais pouvoir +2, quel message d'erreur ridicule pour ce problème. J'aurais cherché pendant des heures sans votre message.
Wesley Smith le
Merci de l'avoir signalé, moi aussi j'ai fait cette stupide erreur. enfin résolu.
Gaurav
44

Si vous utilisez react-native, assurez-vous que la cible de test a le même profil d'approvisionnement que la cible principale.

Mohebifar
la source
3
Merci beaucoup, vous avez sauvé ma journée
Julien Athomas
Vous avez sauvé mon bacon
Theo Bendixson
Merci beaucoup. Tu as sauvé ma journée. :)
pratik
J'ai passé une heure à me battre contre ça jusqu'à ce que je voie votre commentaire, merci !!
ivmos
J'étais mort à l'intérieur jusqu'à ce que je tombe sur ce commentaire.
Chien
29

J'ai eu ce problème avec les droits iCloud. Mon problème était que j'avais oublié d'activer iCloud pour mon ID d'application dans le portail de provisionnement.

Après avoir activé iCloud pour votre ID d'application, vous devrez recréer les profils d'approvisionnement.

adjwilli
la source
1
J'ai eu cette erreur m'arriver à nouveau. J'avais besoin d'ajouter mon nouvel appareil au profil de provisionnement de développement, puis d'actualiser la liste dans Xcode.
adjwilli
Eu le même problème. Ce qui est étrange, car cette application était activée et fonctionnait auparavant pour un déploiement ad hoc.
raeldor
J'ai eu un problème de droits lié à iCloud, car mon application accédait aux documents iCloud. J'ai dû mettre à jour les droits iCloud dans la section Capacités.
user3300864
20

Conservez votre fichier de droits dans Target> Build Settings> Code Signing> Code Signing Entitlements.

Accédez à Cible> Capacités. Activez / désactivez ou désactivez / activez l'une des fonctionnalités.

Courir.

ZpaceZombor
la source
Cela a fonctionné pour moi. mais encore une fois, je dois sélectionner le profil d'approvisionnement dans la page des paramètres de construction.
Rinku
1
Cela a fonctionné pour moi. Les domaines associés ont été activés pour moi. Je l'ai désactivé et le problème a été résolu.
BigRon
19

Ce qui a fonctionné pour moi a été de supprimer complètement le fichier des droits, de la liste des groupes et des paramètres de construction dans le projet et la cible. Ensuite, j'ai recréé les droits à partir de l'onglet Résumé de la cible, et il s'est bien chargé sans aucun message d'erreur.

Mark Knopper
la source
Comme indiqué ci-dessus, la valeur du droit doit être supprimée manuellement dans les paramètres de construction également
petershine
1
supprimer le fichier des droits et l'ajouter à nouveau a fonctionné pour moi - j'ai fait un nettoyage aussi
Jasper
C'était ma clé ici! J'ai vérifié les paramètres de construction du projet et de la cible. Dans la section Signature de code, il y a un paramètre «Droits de signature de code» - J'ai développé, mis en évidence les lignes de débogage et de libération et appuyé sur la touche Suppr. Cela a ensuite permis à mon application de se créer sans aucune erreur. Cependant, il ne sera toujours pas débogué - il sort immédiatement avec un message dans la console, je devrai le rechercher.
Jay Imerman
1
Cela a également fonctionné lors de la tentative d'exécution de l'application HealthKit «fit» pour iOS8 - il y avait une chaîne d'identifiant supplémentaire dans le fichier des droits. Le supprimer a permis au projet de s'exécuter après avoir suivi les autres étapes mentionnées dans ce fil
Alex Stone
Cela a résolu mon problème avec iCloud. Il semble qu'il y avait quelques paramètres supplémentaires dans le fichier des droits qui n'avaient pas besoin d'être là. Les supprimer et tous et faire reconstruire l'onglet Général a fonctionné.
AndyDunn
15

Je mets juste mes 5 cents ici. Pour moi, rien de ce qui précède n'a fonctionné, j'ai donc été obligé de me stresser et de regarder chaque partie du processus avec des yeux neufs.

En me précipitant, j'ai oublié que j'essayais d'installer mon application sur un appareil totalement nouveau.

Mon erreur était donc que je n'avais pas mis à jour mon profil d'approvisionnement en cochant mon nouvel appareil dans la section «Appareils» de la configuration du profil d'approvisionnement dans le portail d'approvisionnement.

Apparemment, ne pas inclure votre appareil dans le profil d'approvisionnement génère également ce message d'erreur.

PinkFloydRocks
la source
D'accord - si vous ne disposez pas de votre profil d'approvisionnement correct, vous pouvez obtenir cette erreur.
Matt
12

Aucune des nombreuses réponses n'a corrigé l'erreur 0xE8008016 pour moi.

Mais lorsque j'ai choisi «Automatic Device Provisioning» dans Xcode 4> Organizer> Devices> Provisioning Profiles, cela a finalement fonctionné.

Auco
la source
1
Ça déchire! A travaillé pour moi aussi. Je pense que c'était une combinaison de tout ce qui précède, puisque l'application a été initialement développée avec XCode 3, puis portée à 4.2, j'ai supprimé le fichier Entitlements.plist du projet, supprimé l'entrée des droits de signature de code dans les paramètres / code de construction Section Signature, puis définissez le profil d'approvisionnement sur automatique. Ce dernier l'a fait.
Jay Imerman
C'était aussi mon problème, sauf qu'il sélectionnait automatiquement le mauvais profil de provisionnement et qu'en sélectionnant manuellement le bon, le problème est résolu.
Abhi Beckert
1
Cela l'a fait pour moi. Je ne sais pas comment quelques profils de provisionnement de l'équipe de développeurs iOS ont été supprimés, mais en cliquant sur Actualiser dans la page Profils de provisionnement à laquelle vous vous référez, cette erreur a été résolue pour moi.
sean808080
11

Dans mon cas, c'était une erreur stupide. J'ai mal défini le schéma «Exécuter» pour utiliser la configuration de construction «Distribution» au lieu de celle «Debug» ou «Release». Erreur stupide, mais il a fallu un certain temps pour le déboguer, donc je vais ajouter ma réponse pour améliorer la base de connaissances dans le débordement de pile!

viggio24
la source
10

Supprimez vos profils de provisionnement, effectuez un «Nettoyer tout», assurez-vous que vos paramètres de provisionnement sont corrects, téléchargez à nouveau et réessayez.

W Dyson
la source
Quelle version de Xcode utilisez-vous? Si c'est 4.0, il y a eu des problèmes avec ça. Vous devrez peut-être redémarrer Xcode ou même redémarrer votre Mac. Assurez-vous que les paramètres d'approvisionnement sont corrects dans le projet et dans la cible. Le réglage de la cible a cependant la priorité sur le projet.
W Dyson
Je pense que c'est un problème avec l'appareil, c'est un iPhone 4 de Verizon, et avec le même profil de provisionnement, je peux déployer une application sur mon iPad .. Quelqu'un d'autre a-t-il eu ce problème avec un iPhone 4 de Verizon?
Richard J.Ross III
Utilisez-vous un ancien profil d'approvisionnement? Vous devez ajouter l'iPhone Verizon en tant qu'appareil dans le portail d'approvisionnement, puis mettre à jour le profil de développement, retélécharger et réinstaller le nouveau profil. Si cela ne fonctionne pas, vous devrez fournir plus d'informations.
W Dyson
Je viens de configurer le profil d'approvisionnement hier, comment pourrait-il être ancien? apple vient de ratifier ma demande de développeur, donc c'était tout nouveau. Quoi qu'il en soit, je verrai comment cela fonctionne lorsque nous mettrons à jour vers iOS 4.3.
Richard J.Ross III
Un «propre» l'a fait pour moi. -_-
Cœur
5
  1. Ouvrez 'iOS Provisioning Portal' dans Safari.
  2. Appuyez sur "Appareils" dans la barre latérale.
  3. Enregistrez l'UDID de votre appareil
  4. Appuyez sur «Profils d'approvisionnement»
  5. Modifiez votre profil d'applications.
  6. Sélectionnez l'appareil que vous venez d'ajouter.
  7. Téléchargez le fichier .mobileprovision.
  8. Installez-le.
  9. Construisez à nouveau.
neoneye
la source
4

J'ai eu le même problème dans mon application, après quelques mois, cette application spécifique fonctionnait bien.

Le problème était que les capacités configurées dans mon projet Xcode (sous Cibles -> {ProjectName} -> Capabilities) n'étaient pas les mêmes que les capacités configurées dans le profil de provisionnement (vous pouvez vérifier cela dans le centre des membres Apple sous Identifier -> App Identifiants -> {votre identifiant d'application}. Dans le centre des membres, j'ai vu que Game Center est activé et donc, dans mon projet, j'ai également activé Game Center. Ensuite, l'application a pu se lancer.

Je ne sais pas comment cela fonctionnait jusqu'à présent. C'est encore un mystère :)

bobsacameno
la source
J'ai maintenant réalisé que les notifications push ne fonctionnaient plus. J'ai supprimé les fonctionnalités du Game Center dans Xcode. L'application fonctionne maintenant, mais les notifications push ne viennent plus. Quelqu'un sait pourquoi?
bobsacameno
4

Pour moi, cochez l'option "Gérer automatiquement la signature" dans Target pour résoudre le problème!

Carlos Jim
la source
3

Si vous ne l' avez pas changé quoi que ce soit lié aux certificats (ne pas remplacer ou les mettre à jour) ne juste Product -> Clean. Cela m'a aidé plusieurs fois. (Xcode 6.2)

Stefan
la source
2

La mise à niveau vers XCode 4 a résolu le problème.

Richard J. Ross III
la source
1
Cela ne semble pas être un problème spécifique à la version XCode, car j'ai eu l'erreur dans XCode 7.3.1. J'ai dû supprimer le profil d'approvisionnement et le télécharger à nouveau à partir des préférences XCode pour résoudre le problème.
Ian Pinto
@IanPinto Je suis d'accord. La principale raison pour laquelle c'est la réponse acceptée est que c'est ce qui a fonctionné pour moi . Ce ne sont plus des informations vraiment très utiles, et j'ai voté pour la plupart des autres réponses dans cet article, car elles contiennent toutes des informations extrêmement précieuses pour les personnes qui les examineront à l'avenir. La bonne chose à propos des auto-réponses sur SO est qu'elles ne sont pas automatiquement poussées vers le haut de la pile, donc peu de gens verront cette réponse, de toute façon :)
Richard J. Ross III
2

J'ai rencontré ce problème aujourd'hui et je m'arrachais les cheveux pour essayer de le comprendre. Comme beaucoup de gens ici, cela fonctionnerait si je supprimais les options iCloud de mon fichier de droits. Lorsque j'irais déboguer l'application avec les options iCloud activées, j'obtiendrais l'erreur 0xe8008016. C'était juste après la révocation et la régénération de nouveaux certificats.

Donc, ce qui a résolu le problème pour moi a été d'activer la prise en charge d'iCloud pour le profil d'équipe Xcode généré automatiquement. Connectez-vous à l'outil d'approvisionnement en ligne, accédez à App IDs, cliquez sur Xcode iOS Wildcard App ID, cliquez sur edit, activez iCloud en cochant la case, puis en cliquant sur Done. Actualisez vos profils dans Xcode, puis cela commencera à fonctionner.

Cela a du sens - lorsque vous déboguez, il est par défaut le profil d'équipe et le profil d'équipe doit avoir iCloud activé.

kurtzmarc
la source
1
OUI! C'était mon problème et l'activation d'iCloud sur l'identifiant Toutes les applications a fait l'affaire. Merci beaucoup
Guy Moreillon
2

Cela m'est arrivé lorsque j'essayais d'utiliser un profil de provisionnement de distribution de l'App Store pour un test local par erreur. Lorsque j'ai utilisé le profil de développement approprié, cela fonctionnait très bien. Peut-être que cela aide quelqu'un aussi.

Thomas Mondel
la source
que puis-je faire si je souhaite tester le profil de l'application qui a été téléchargée sur l'App Store? Y a-t-il un moyen de le faire?
bobsacameno
2

Cela a fonctionné pour moi ...

  1. J'ai supprimé le Entitlementsfichier du target.
  2. J'ai supprimé l'application de tous mes appareils
  3. Cleaned la construction dans Xcode
  4. * facultatif, supprimez le profil d'approvisionnement et ajoutez-le à nouveau

J'espère que cela fonctionne pour vous aussi :)

Joe Barbour
la source
supprimé le fichier des droits de la cible, fonctionne pour moi. Mais ne le faites pas si c'est la meilleure façon de le faire.
YuAn Shaolin Maculelê Lai
2

C'est ce qui a résolu mon problème: supprimer le chemin d'accès dans la section Droits de signature de code des paramètres de génération de cibles.

Jeremy Kelleher
la source
Une explication «comment» s'il vous plaît?
Agent Zebra
@AgentZebra Cliquez sur le fichier principal du projet> choisissez votre application dans "Cibles"> Paramètres de construction> Signature> Droits de signature de code, supprimez la valeur qui y est affichée.
weienw
2

Mon profil d'approvisionnement du développeur Apple correspondait à mes capacités Xcode, mais il ne serait toujours pas intégré à mon appareil tant que je n'aurais pas fait ce qui suit:

  1. Supprimez / supprimez le fichier de droits de votre projet Xcode.

  2. Revenez à l'onglet des fonctionnalités Xcode

  3. Cliquez sur le bouton "Corriger le problème" pour que Xcode rajoute le fichier des droits.

A travaillé pour moi, j'espère que cela aide quelqu'un.

Henry Héléine
la source
2

Cela m'est arrivé sur Xcode 8, cela a été partiellement causé par le nouveau Provisioning Profileparamètre de construction, car dans cette version de Xcode, il y a deux entrées pour le profil d'approvisionnement:

  • Profil d'approvisionnement
  • Profil de provisionnement (obsolète)

Ma faute était que je n'avais mis à jour que le premier et que l'entrée obsolète indiquait toujours un profil d'approvisionnement non valide. Changer les deux pour la même valeur a résolu le problème (la suppression de l'entrée obsolète devrait également avoir le même effet).

Cristik
la source
1

Dans mon cas, cela ressemble à Xcode (secrètement) réinitialiser le schéma. J'ai trouvé que la configuration de construction pour Archive était définie sur Release au lieu de distribution one, et après l'avoir modifiée pour la bonne, cela a fonctionné.

Je pense qu'il vaut mieux vérifier les schémas ainsi que les paramètres de construction.

YoonHo
la source
1

J'avais un vieux projet et le même problème et je l'ai résolu.

1.Allez au résumé
2.Summary ont des groupes de trousseaux et supprimez l'objet des groupes de keychanin.

J'espère que cela fonctionnera pour vous. Cordialement.

Erhan Demirci
la source
1

J'utilise xcode 6 et rencontre ce problème pour un iPhone 4 en particulier

enfin, je vais sur device => provision profile =>

puis ajoutez le profil manuellement et le problème est résolu.

chings228
la source
1

Pour moi, dans Xcode 5.1, j'obtenais The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.en essayant de tester l'application sur mon appareil. Le certificat de développement de périphérique doit expirer en février 2015.

Le problème a été résolu:

Sélectionné Target->Capabilities, sous GameCenter, j'obtenais ici une erreur sur le droit GameCenter car il n'a pas été ajouté au projet, bien que la première version de l'application ait été publiée via le même XCode 5.1, mais il n'y avait pas d'erreurs comme celle-ci auparavant.

Ci-dessous, un bouton a été donné avec le titre Fix Issue. Une fois cliqué, il a ajouté le droit GameCenter et le problème a été résolu.

Après les salles, l'écran ressemble à:

entrez la description de l'image ici

Pour moi, il n'y avait rien à voir avec le certificat. L'application s'exécute maintenant avec succès sur l'appareil.

MTahir
la source
1

Un autre problème potentiel qui provoquera ce message d'erreur: si vous utilisez un profil d'approvisionnement parfaitement valide pour votre application principale, mais que vous avez un profil d'approvisionnement expiré ou non valide pour votre extension de widget Aujourd'hui. J'imagine que ce serait la même chose pour une extension Apple Watch.

Vérifiez tous les profils!

apb
la source
1

Vérifiez l'accès KeyChain!

Dans mon cas, j'utilisais le mauvais certificat de distribution associé au profil d'approvisionnement.

Daisy R.
la source
1

Le code sur lequel je travaillais avait un bundleid différent dans l'Info-plist que dans le Product Bundle Identifierparamètre de construction.

J'ai trouvé cela parce que j'ai remarqué ce message dans la console de l'appareil dans la vue des appareils:

MIS: entitlement 'application-identifier' has value not permitted by provisioning profile 'iOS Team Provisioning Profile: com.xxx.yyy'

UglyBlueCat
la source
0

Si vous essayez d'activer la synchronisation iCloud, vous devrez activer iCloud pour l'AppID utilisé pour créer le profil de provisionnement de développement (ce que Xcode fait automatiquement). Vous devrez également l'activer pour les profils de distribution.

La partie délicate est que lorsque vous actualisez des profils dans Xcode, cela ne déclenche pas un renouvellement des profils; ils sont simplement re-téléchargés. Ainsi, dans votre portail de provisionnement iOS sous Provisioning / Development, vous devrez vérifier le profil étiqueté (Géré par Xcode) et le supprimer (bouton Supprimer la sélection). Faites cela pour TOUS les profils, développement et distribution, que vous devez régénérer.

Désormais, dans Xcode dans l'Organisateur, supprimez les profils d'approvisionnement que vous êtes sur le point de remplacer.

Maintenant, pour en obtenir de nouveaux. Si vous développez pour plusieurs équipes et que vous souhaitez n'en actualiser qu'une en particulier, sélectionnez l'équipe appropriée dans le volet gauche sous ÉQUIPES, sinon sélectionnez Provisioning Profiles sous LIBRARY, puis sélectionnez Refresh.

Enfin, supprimez tous les anciens profils d'approvisionnement sur votre appareil qui pourraient entrer en conflit avec les nouveaux, car les profils ne sont jamais supprimés automatiquement; les nouveaux profils sont simplement ajoutés à la liste.

Ryan H.
la source