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
Réponses:
Je résout ce problème en activant la fonctionnalité de notification push.
Cliquez sur .xcodeproj -> Capabilities -> Enable Push Notification
la source
J'ai résolu ce problème comme ceci:
Et essayez à nouveau!
La source:
la source
Vous devez activer Target -> fonctionnalités -> notification push. J'ai rencontré ce problème en utilisant Xcode 8.
la source
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.
la source
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.
2. Activez les capacités de notification push
la source
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
et maintenant exécutez le projet, cela fonctionnera certainement.
la source
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.
la source
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?
la source
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.
la source