Aucune chaîne de droit d'accès "aps-environment" valide trouvée pour l'application sur l'App Store

103

J'ai donc cette application appelée Dripper que j'ai publiée il y a environ un mois, puis une mise à jour il y a quelques jours. La mise à jour a ajouté des notifications push et quelques petites modifications. Je l'ai testé avec sandbox-apn en utilisant le profil de développement et les choses ont très bien fonctionné. Ensuite, je suis passé à l'apn de production et je l'ai poussé en vol d'essai, encore une fois, les choses ont parfaitement fonctionné. Une fois que j'ai mis la mise à jour sur le marché et l'ai exécutée, j'ai remarqué que je n'obtenais aucune nouvelle inscription push sur le serveur. J'ai regardé les journaux de la console pour l'appareil et j'ai trouvé ceci:

4 décembre 17:55:15 Ina-touch-it coffco [1210]: Inscription aux notifications à distance
4 décembre 17:55:15 Ina-touch-it SpringBoard [52]: Aucune chaîne de droit d'accès "aps-environnement" valide trouvée pour l'application 'Dripper': (nul). Les notifications ne seront pas envoyées.
4 déc 17:55:15 Ina-touch-it coffco [1210]<Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

Je suis un peu confus car je pensais que l'apn de production fonctionnerait de la même manière entre les versions ad-hoc et app store.

Voici mon identifiant d'application et ses droits -> http://i.stack.imgur.com/uf4pB.png

Voici le profil d'approvisionnement de l'App Store -> http://i.stack.imgur.com/AYOV5.png

Jessiah
la source
Ici, il est signé et téléchargé -> i.stack.imgur.com/AziCI.png Paramètres de construction -> i.stack.imgur.com/j2TFG.png
Jessiah

Réponses:

282

Je résout ce problème en activant la fonctionnalité de notification push.

Cliquez sur .xcodeproj -> Capabilities -> Enable Push Notification

wei
la source
15
Dans XCode 8, j'ai vu une erreur dans cette section indiquant qu'un fichier de droits devait être ajouté. J'ai cliqué dessus pour le corriger, puis cela a fonctionné correctement.
Pellet
Ce n'est que récemment apparu lors du démarrage du développement dans Xcode 8 et cela l'a corrigé. Merci!
Kody R.
Travaillait auparavant sur Xcode 7.3 mais ne s'enregistrait pas sur Xcode 8, mais cela a résolu mon problème en activant la capacité de notification push.
Vinod Rathod
Apple décide de cacher cette option quelque part au fond de Xcode 8.1. S'il vous plaît laissez-moi savoir si quelqu'un est capable de le trouver.
Thomas Sebastian
Je n'ai pas eu l'option "Notification push" dans la liste des fonctionnalités. C'était quelque chose à voir avec le fait que XCode générait automatiquement mon profil d'approvisionnement (je suis nouveau sur iOS dev donc je me trompe peut-être ...). J'ai dû me connecter à mon compte de développeur et créer manuellement un profil d'approvisionnement pour mon application avant qu'elle n'affiche les notifications push dans la liste des fonctionnalités. Enfin, son activation a résolu ce problème.
Max Mumford
103

J'ai résolu ce problème comme ceci:

  • Allez dans Xcode "Préférences"
  • Allez dans l'onglet "Comptes"
  • Sélectionnez mon identifiant Apple et cliquez sur "Afficher les détails"
  • Cliquez sur la flèche en bas à gauche pour actualiser
  • Cliquez sur "Terminé"

Et essayez à nouveau!

La source:

Erwan
la source
6
alors vous devez sélectionner le profil d'approvisionnement correct dans Build Setting
Hashem Aboonajmi
2
Dans mon cas, j'avais besoin de régénérer les profils d'approvisionnement dans le centre de développement. Ensuite, téléchargez à nouveau tous les profils et certificats via Xcode> préférences> Comptes> Votre identifiant Apple> bouton Afficher les détails dans le coin droit> bouton Tout télécharger. Après cela, cela devrait fonctionner à nouveau.
blackjacx
2
Je trouve triste qu'il y ait tant de problèmes dans le processus de poussée et de déploiement. La seule façon dont je peux tolérer tout cela est de tout faire manuellement à 100%, de savoir ce que Xcode tente de faire, et de gérer les identités du trousseau et les profils de provisionnement sur le système de fichiers et via l'utilitaire de configuration iPhone.
Tom Pace
57

Vous devez activer Target -> fonctionnalités -> notification push. J'ai rencontré ce problème en utilisant Xcode 8.entrez la description de l'image ici

Ram G.
la source
18

Ces problèmes sont dus au fait que le profil d'approvisionnement actuel ne contient pas d'informations APNS, car le profil d'approvisionnement est créé AVANT de créer le certificat APNS.

Par conséquent, pour résoudre le problème, créez un nouveau profil de provisionnement et sélectionnez le profil de provisionnement dans Xcode. Alors vous avez terminé.

De plus, lorsque vous ajoutez push, je pense que vous avez également mis à jour les certificats dans le trousseau.

Fahim Parkar
la source
Le profil que j'utilise a été créé après avoir créé le certificat pour l'apn push de production. Puis-je faire quelque chose pour confirmer qu'il manque ou contient les informations de l'apns?
Jessiah
@Jessiah: Non .. C'est comme si nous devions suivre les traces fournies par Apple.
Fahim Parkar
6

Concernant Xcode 9, certaines des réponses sont obsolètes ou incomplètes pour résoudre ce problème spécifique.

Voici les étapes à suivre pour moi:

1. Créez le profil de provisionnement

( FCM n'est pas une condition préalable à la notification push mais leurs guides sont incroyablement clairs, voici le lien )

Pour tester votre application en cours de développement, vous avez besoin d'un profil d'approvisionnement pour le développement pour autoriser vos appareils à exécuter une application qui n'est pas encore publiée sur l'App Store.

  1. Accédez au Centre des membres pour les développeurs Apple et connectez-vous.
  2. Accédez aux certificats, identifiants et profils.
  3. Dans le menu déroulant dans le coin supérieur gauche, sélectionnez iOS, tvOS, watchOS s'il n'est pas déjà sélectionné, puis accédez à Profils de provisionnement> Tous.
  4. Cliquez sur le bouton + pour créer un nouveau profil d'approvisionnement.
  5. Sélectionnez Développement d'applications iOS comme type de profil d'approvisionnement, puis cliquez sur Continuer.
  6. Dans le menu déroulant, sélectionnez l'ID d'application que vous souhaitez utiliser, puis cliquez sur Continuer.
  7. Sélectionnez le certificat de développement iOS de l'ID d'application que vous avez choisi à l'étape précédente, puis cliquez sur Continuer.
  8. Sélectionnez les appareils iOS que vous souhaitez inclure dans le profil d'approvisionnement, puis cliquez sur Continuer. Assurez-vous de sélectionner tous les appareils que vous souhaitez utiliser pour vos tests.
  9. Saisissez un nom pour ce profil d'approvisionnement (par exemple, exemple de profil de développement d'application Firebase), puis cliquez sur Générer.
  10. Cliquez sur Télécharger pour enregistrer le profil d'approvisionnement sur votre Mac.
  11. Double-cliquez sur le fichier de profil d'approvisionnement pour l'installer.

2. Activez les capacités de notification push

  1. Aller à l'éditeur de projet, à partir du manuel officiel entrez la description de l'image ici
  2. Dans la section des capacités, activer la notification push entrez la description de l'image ici
micaball
la source
4

J'ai eu le même problème avec iOS 8.0 et les versions supérieures; Je n'ai pas reçu le jeton d'appareil et j'ai donné l'erreur: "aucune chaîne de droit d'accès" aps-environment "valide n'a été trouvée pour l'application"

Je l'ai corrigé en utilisant les étapes ci-dessous

  • J'ai créé un nouveau profil d'approvisionnement pour l'ID d'application
  • l'a ajouté dans xcode
  • projet Aller dans Xcode "Préférences"
  • Allez dans l'onglet "Comptes" Sélectionnez mon identifiant Apple et cliquez sur "Afficher les détails"
  • sélectionnez votre profil d'approvisionnement
  • Cliquez sur la flèche en bas à gauche pour actualiser
  • Cliquez sur "Terminé"

et maintenant exécutez le projet, cela fonctionnera certainement.

Venky Chittala
la source
3

Pour une raison quelconque, la solution de Wei ne fonctionnait pas pour moi. En cliquant sur les droits de correction, Xcode a généré deux fichiers et il ne fonctionnait toujours pas, en effet les fichiers de droits générés étaient vides.

Cela a été causé (apparemment) par le fait que PRODUCT_NAME du projet était plutôt long et incluait des espaces et des lettres «ä» et «ö». Après l'avoir changé en une version courte avec des lettres en anglais uniquement, le correctif de Wei a fonctionné correctement.

FrankByte.com
la source
1

Il m'a fallu un certain temps pour comprendre ce qui provoquait une erreur de droit aps-environnement valide. Le problème était qu'il y avait deux fichiers .entitlements dans le projet XCode. L'un est platform / ios //. J'ai mis à jour ce dernier fichier manuellement et tout a commencé à fonctionner. Une autre option pour résoudre ce problème consiste à modifier les .entitlements utilisés par XCode. Cela peut être fait dans Paramètres de construction -> Signature -> Paramètre de configuration des droits de signature de code.

Je ne sais pas pourquoi il existe deux fichiers .entitlements dans XCode. Se pourrait-il que le plugin push cordova ait créé le second (je développe une application mobile hybride cordova)? Et quel est le bon emplacement pour le fichier .entitlements?

Alex Ryltsov
la source
-1

J'ai rencontré ce problème et je l'ai résolu avec la première solution.

Cependant, j'ai échoué une fois parce que j'avais deux comptes Apple connectés. Après en avoir retiré un, tout est devenu opérationnel.

Desen GUO
la source