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
J'ai résolu ce problème comme ceci:
Et essayez à nouveau!
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 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.
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
et maintenant exécutez le projet définitivement ça va marcher.
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:
( 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.
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.
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?
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.