web-dev-qa-db-fra.com

Aucune chaîne de droits 'aps-environment' valide trouvée pour l'application sur l'App Store

J'ai donc cette application appelée Dripper que j'ai publiée il y a environ un mois, puis mise à jour il y a quelques jours. La mise à jour a ajouté des notifications Push et quelques petites modifications. Je l'ai testé avec le sandbox-apn en utilisant le profil de développement et tout a bien fonctionné. Ensuite, j'ai basculé les choses vers l'apn de production et l'ai poussé à l'essai en vol, encore une fois, les choses ont parfaitement fonctionné. Une fois que j'ai mis la mise à jour sur le marché et que je l'ai exécutée, j'ai constaté que je ne recevais aucune nouvelle inscription Push sur le serveur. J'ai consulté les journaux de la console pour le périphérique et trouvé ceci:

4 déc. 17:55:15 Ina-touch-it coffco [1210]: Enregistrement pour les notifications à distance
4 déc. 17:55:15 SpringBoard Ina-touch-it [52]: Aucune chaîne de droits d'accès 'aps-environment' valide n'a été trouvée pour l'application 'Dripper': (null). Les notifications ne seront pas livré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 parce que 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 d'accès -> http://i.stack.imgur.com/uf4pB.png

Voici le profil d'approvisionnement pour la boutique d'applications -> http://i.stack.imgur.com/AYOV5.png

81
Jessiah

Je résous ce problème en activant la capacité de notification Push.

Cliquez sur .xcodeproj -> Fonctions -> Activer la notification push

240
wei

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

  • Allez dans Xcode "Préférences"
  • Allez dans l'onglet "Comptes"
  • Sélectionnez mon Apple ID et cliquez sur "Afficher les détails".
  • Cliquez sur la flèche dans le coin inférieur gauche pour actualiser
  • Cliquez "Terminé"

Et essayez à nouveau!

La source:

103
Erwan

Vous devez activer la cible—> capacités—> notification push. J'ai fait face à ce problème en utilisant Xcode 8. enter image description here

56
Ram G.

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 d'approvisionnement et sélectionnez le profil d'approvisionnement dans Xcode. Alors vous êtes fait.

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

19
Fahim Parkar

J'ai eu le même problème en utilisant iOS 8.0 et versions supérieures; Je n'ai pas reçu le jeton de périphérique et donnais l'erreur suivante: "aucune chaîne de droits d'accès valide 'environnement-aps' 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.
  • ajouté dans xcode
  • projet Aller sur Xcode "Préférences"
  • Allez sur l'onglet "Comptes" Sélectionnez mon Apple ID et cliquez sur "Afficher les détails"
  • sélectionnez votre profil d'approvisionnement
  • Cliquez sur la flèche dans le coin inférieur gauche pour actualiser
  • Cliquez "Terminé"

et maintenant exécutez le projet définitivement ça va marcher.

4
Venky Chittala

En ce qui concerne 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éer le profil de provisioning

( FCM n'est pas une condition préalable pour les notifications Push, mais leurs guides sont étonnamment 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 afin d'autoriser vos appareils à exécuter une application qui n'est pas encore publiée sur l'App Store.

  1. Accédez au Apple Developer Member Center et connectez-vous.
  2. Accédez à Certificats, identificateurs et profils.
  3. Dans le menu déroulant situé dans le coin supérieur gauche, sélectionnez iOS, tvOS, watchOS s'il ne l'est pas déjà, puis accédez à Profils de provisioning> 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 correspondant à l'ID d'application que vous avez choisi à l'étape précédente, puis cliquez sur Continuer.
  8. Sélectionnez les périphériques iOS que vous souhaitez inclure dans le profil de provisioning, puis cliquez sur Continuer. Assurez-vous de sélectionner tous les périphériques que vous souhaitez utiliser pour vos tests.
  9. Saisissez un nom pour ce profil de provisioning (par exemple, Profil de développement d'application Firebase Sample), 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 de provisioning pour l'installer.

2. Activer les capacités de notification push

  1. Aller à l'éditeur de projet, de manuel officielenter image description here
  2. Dans la section Capacités, activez la notification push enter image description here
3
micaball

Pour une raison quelconque, la solution de Wei ne fonctionnait pas pour moi. Lorsque vous cliquez sur les droits d'accès au correctif, Xcode a généré deux fichiers et il ne fonctionnait toujours pas. En effet, les fichiers de droits d'utilisation générés étaient vides.

Cela semble être dû au fait que PRODUCT_NAME du projet est plutôt long et comprend des espaces et des lettres "ä" et "ö". Après avoir changé pour une version courte avec des lettres en anglais seulement, le correctif de Wei a fonctionné correctement.

3
GOR

Il m'a fallu un certain temps pour déterminer ce qui ne causait aucune erreur de droit d'accès valide pour l'environnement aps. Le problème était qu'il y avait deux fichiers .entitlements dans le projet XCode. L'une est plateforme/ios //. Droits et une autre est plateforme/ios // Ressources/.entitlements et les droits appropriés sont présents dans le fichier précédent uniquement lorsque XCode est configuré pour utiliser ce dernier. J'ai mis à jour ce dernier fichier manuellement et tout a commencé à fonctionner. Une autre option pour résoudre ce problème consiste à changer les fichiers .entitlements utilisés par XCode. Cela peut être fait dans Paramètres de construction -> Signature -> Param config Droits de signature de code.

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

1
Alex Ryltsov

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

Cependant, j’ai échoué une fois car j’avais deux comptes Apple connectés). Après la suppression d’un, tout est devenu opérationnel.

0
Desen GUO