en utilisant xcode 8
faisant le réglage de notification Push, contrairement à xcode 7
, xcode 8
le développeur a besoin d’activer le commutateur de capacités de notifications Push (situé à l'adresse TARGETS -> AppName -> Capabilities
comme photo suivante),
alors il générera le fichier AppName.entitlements comme suit
//AppName.entitlements
<key>aps-environment</key>
<string>development</string>
mais pour la version de production App, si nous changeons la chaîne en
//AppName.entitlements
<key>aps-environment</key>
<string>production</string>
alors les capacités montrent un avertissement
et il semble que quelle que soit la valeur de chaîne spécifiée dans aps-environment, nous pouvons toujours obtenir le jeton de périphérique Push à l'adresse application:didRegisterForRemoteNotificationsWithDeviceToken:
alors, quel est le réglage correct des droits de notification Push? Merci
Je me débattais avec cela aujourd'hui dans Xcode 8 GM. Après la désactivation du paramètre, la suppression de mon profil d'approvisionnement du portail de développeur, sa régénération et sa réactivation, j'ai été en mesure d'éliminer l'avertissement dans Xcode. N'oubliez pas que je n'ai pas manipulé le fichier de droits. Je l'ai laissée dans l'environnement de développement et après l'archivage, j'ai obtenu le réglage correct (environnement de production).
Semble que Xcode est toujours très bogué, même dans GM
Mon problème était que mon client pousseur était obsolète et que Push réussirait à déboguer les jetons. Un autre problème pour lequel je travaille toujours sur un correctif est que je ne pouvais exporter l'application que via un gymnase avec Legacy-api activé, cela ne permettait pas de définir l'environnement APN comme étant une "production" et de le laisser comme un "développement" dans fichier embedded-mobile.provision '. J'ai cependant réussi à déployer l'application via l'organiseur xcode pour travailler avec apns (prod) maintenant.
Je pense que la meilleure solution consiste à ouvrir le package de projet et à ouvrir project.pbxproj
changer la CODE_SIGN_ENTITLEMENTS
CODE_SIGN_ENTITLEMENTS = "your-app/production.entitlements";