40 votes

Xcode 8 APS Environment Entitlement ne sera pas mis en production

Les notifications push fonctionnent sur mon application.
Je suis allé soumettre une nouvelle mise à jour de l'application et j'ai rencontré une erreur avec l'environnement APS non défini.
J'ai cliqué sur "Fixer le problème" et le fichier d'habilitation a été créé avec l'environnement APS réglé sur le développement.

Pour soumettre l'application, je veux évidemment que ce paramètre soit défini sur la production. Je change la valeur en production et je procède à l'archivage de l'application pour la soumettre.
Une erreur se produit dans la section des capacités pour les notifications push, le dernier paragraphe "Add the Push Notifications entitlement to your entitlements file" étant en rouge.

Ainsi, lorsque je clique sur "Fixer le problème", la valeur de l'environnement APS devient "Développement".
Je suis tombé sur une suggestion d'inspecter le profil de provisionnement et de rechercher la propriété d'environnement APS.
Je suis passé par le processus d'archivage et j'ai sélectionné "Upload to App Store".

Lorsque j'ai enfin atteint le résumé, j'ai cliqué sur le profil de provisionnement attaché au binaire et aux droits.
J'ai ouvert le profil de provisionnement dans un éditeur de texte et j'ai cherché la propriété d'environnement APS.
J'ai trouvé la propriété et elle est définie sur la production dans le profil de provision.
J'ai décidé d'essayer une autre suggestion, qui consistait à recréer le profil de provisionnement de la distribution.
J'en ai fait un nouveau et cette solution ne fonctionne pas non plus.

D'après ce que j'ai compris, la propriété de l'environnement APS est basée sur la valeur de votre profil de provisionnement.

Toute aide serait appréciée. Merci.

17voto

yuchen Points 350

Désactivez les "notifications push" dans Capacités puis reconstruisez.

Mise à jour

Après des heures de débogage, peu importe comment vous configurez Xcode8 ou construisez avec n'importe quel schéma (debug ou production), vous obtiendrez toujours un deviceToken pour l'environnement de développement de APNS. J'ai essayé de supprimer mon application sur mon appareil de test qui a été construit directement à partir de Xcode8.1 avec le schéma de production. Puis j'ai installé mon application depuis AppStore, qui a été archivée depuis Xcode8.1 avec la même configuration il y a deux semaines, le service de notification de la version AppStore fonctionne bien, ce qui prouve que Xcode a défini la bonne valeur de droit pour l'environnement de production. Donc, la solution est la suivante : ne pas toucher au fichier entitlements, et garder l'option "Push Notifications" activée dans Capabilities, faire toutes les corrections demandées par Xcode . J'espère que cela vous aidera.

1 votes

C'est tellement déroutant de la part d'Apple. J'ai fait une recherche rapide de documentation sur le aps-environment et les informations fournies sont pratiquement inexistantes. Connaissez-vous d'autres ressources ? Une réponse de l'OS, peut-être ?

0 votes

Malheureusement, je ne le fais pas, désolé. J'ai lu quelques fils de discussion à ce sujet, mais aucun de ces articles ne mentionne ou ne cite de documents officiels d'Apple.

1 votes

Je peux confirmer, que cette description est correcte. Le déclencheur, qu'il s'agisse de l'APN sandbox o production sont utilisés, il semble que ce soit le certificat (par exemple le profil d'approvisionnement) qui a été utilisé pour signer l'application (dev = sandbox / ad-hoc & distribution = production).

7voto

Mayank Kumar Points 258

Pour moi, la fonction " Gestion automatique de la signature " de XCode 8 le fait automatiquement et correctement lors de l'archivage selon le profil d'approvisionnement que nous sélectionnons pour la méthode de déploiement.

4voto

Mr.Fingers Points 637

Essayez de réactiver les capacités de "Push Notifications" dans , cela a fonctionné pour moi, si cela n'aide pas, essayez de supprimer le fichier avec les droits dans votre projet, et de réactiver les capacités de "Push Notifications" dans les paramètres de votre projet.

0 votes

J'ai essayé vos deux suggestions et je n'arrive toujours pas à faire apparaître le droit sur le résumé lorsque j'archive. Merci pour votre aide.

0 votes

5 votes

Comme je l'ai compris avec la nouvelle signature Apple, vous n'avez pas besoin de modifier le fichier ***.entitlements par vous-même. XCode le fait pour vous, lorsque vous archivez la construction, et l'exportation (via l'organisateur) est comme ad-hoc ou la distribution à App Store. Il sera mis en place environnement correct.

0voto

Pebby Points 169

Après avoir essayé toutes les réponses de stack over flow, j'ai découvert que le problème se situe dans entitlement.plist fichier can be debugged a été réglé sur TRUE .

  1. Essayez de disable y re-enable notifications push dans les capacités cibles de Xcode.
  2. Can be debugged doit être réglé sur NO pour le soumettre à l'AppStore.

Construire et archiver. Vous devriez voir que l'environnement est réglé sur production.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X