web-dev-qa-db-fra.com

Avertissement relatif au droit de notification Push manquant

Nous avons créé un identifiant d'application, un certificat de distribution et un profil d'approvisionnement. Les notifications push n'étaient pas activées initialement.

Nous devons maintenant implémenter les notifications push dans l'application.

Nous avons activé les notifications push dans l'application D, vérifié le profil d'approvisionnement, le profil d'approvisionnement était invalide, l'avons mis à jour et téléchargé le dernier profil d'approvisionnement afin de l'utiliser pour la prochaine fois.

Nous intégrons ensuite les API pour les notifications push via APNS dans notre code.

Après avoir téléchargé l'application dans iTunesConnect, nous recevons le courrier électronique suivant d'Apple:

Cher développeur,

Nous avons découvert un ou plusieurs problèmes liés à votre récente livraison de "Swanvi". Votre livraison a réussi, mais vous voudrez peut-être résoudre les problèmes suivants lors de votre prochaine livraison:

Droits de notification Push manquants - Votre application semble inclure l'API utilisée pour s'enregistrer auprès du service de notifications Push d'Apple, mais les droits de la signature de l'application n'incluent pas le droit "environnement-aps". Si votre application utilise le service de notification Apple Push, assurez-vous que votre ID d'application est activé pour la notification Push dans le portail de provisioning, puis soumettez à nouveau après la signature de votre application avec un profil de provisioning de distribution qui inclut le droit "environnement-aps". Voir «Provisionnement et développement» dans le Guide de programmation des notifications locales et push pour plus d'informations. Si votre application n'utilise pas le service de notification Apple Push, aucune action n'est requise. Vous pouvez supprimer l'API des futures soumissions pour arrêter cet avertissement. Si vous utilisez une structure tierce, vous devrez peut-être contacter le développeur pour obtenir des informations sur la suppression de l'API.

Une fois les problèmes corrigés, vous pouvez utiliser Xcode ou Application Loader pour télécharger un nouveau fichier binaire vers iTunes Connect.

Nous avons revérifié l'ID de l'application. Les notifications push sont activées pour le développement et la production.

Dans le profil de provisioning, l'option Notifications push est affichée.

Pourquoi recevons-nous cet avertissement par courrier électronique?

57
Bis

Vous devez voir 2 choses _: Les profils de provisioning utilisés par votre compte sur Xcode et ceux sur developer.Apple

C'est tout sur les profils d'approvisionnement. 

ÉTAPE 1: Accédez à https://developer.Apple.com/account/ios/certificate/ et consultez les Active Profils d'approvisionnement de distribution iOS dont vous avez besoin pour votre application. Cliquez ensuite dessus et assurez-vous que Enabled Services a Push Notification activé. Si ce n'est pas le cas, cliquez sur Éditer et activez-le en suivant les étapes fournies par Apple. S'il est activé, alors parfait.

 distribution link

ÉTAPE 2: Supprimez tous les profils de provisioning Invalid que vous voyez liés à l'application (uniquement ceux qui ne sont pas valides pour VOTRE application). Je vais vous dire pourquoi dans les étapes suivantes.

ETAPE 3: Accédez à Xcode -> Préférences -> Afficher les détails (pour votre compte) -> [FACULTATIF: pour vous assurer que l’invalide est parti, cliquez sur n’importe quel profil de provisioning, sélectionnez "Afficher dans Finder ", puis Supprimer/Déplacer tous les profils de provisioning de ce dossier.] Cliquez maintenant sur Télécharger tous les profils. Cela remplacera les profils d'approvisionnement locaux par les profils actuels. Cliquez sur DONE.

ÉTAPE 4: Accédez à votre application Cibles -> Paramètres de construction -> dans la signature de code, développez votre profil d'approvisionnement pour afficher les onglets Debug et Release. Par défaut, ce sera sur Automatique (c'est pourquoi votre application a probablement utilisé automatiquement le profil non valide que nous venons de supprimer à l'étape 2). Pour Release, pour être plus sûr, sélectionnez le profil de configuration Active avec les notifications Push activées, comme indiqué à l'étape 1.

C'est tout.

Vous ne devriez pas recevoir de courriels maintenant.

45
Anish Kumar

@Djeeraj V.S. est correct. Cordova a ajouté une compilation conditionnelle pour supprimer cette exigence pour les applications ne nécessitant pas de notifications Push. 

Vous pouvez commenter le code dans Classes\AppDelegate.h selon cette réponse , mais il vaut mieux ajouter le symbole de compilation DISABLE_Push_NOTIFICATIONS via l'interface utilisateur afin de pouvoir continuer à bénéficier des futures mises à niveau de Cordova.

Je viens de fond .NET, donc je suis familier avec la compilation conditionnelle, mais je devais passer un peu de temps à chercher comment faire en sorte que le compilateur fonctionne dans XCode. 

Il s'avère que le mot magique ici est 'Macro de préprocesseur'. Voici comment cela se fait graphiquement via l'interface utilisateur (notez que c'est comme ça qu'il est fait dans XCode 6.1):

 enter image description here

J'espère que cela aide d'autres personnes dans la même situation.

15
Steven de Salas

Dans mon cas, je viens de vérifier à nouveau la page "Capacités" dans les propriétés du projet et d'appuyer sur "Correction du problème" dans le menu correspondant d'APNS. Maintenant, il doit ressembler à ceci  enter image description here

7
Vyacheslav

Dans mon cas, la pratique suivante a fonctionné . Xcode 9.2

  1. Automatically manage signing désactivé qui apparaît dans Build Target > Signing
  2. Importer le profil d'approvisionnement manuellement. 
2
Rohit Mandiwal

J'ai eu le même avertissement et voici comment je l'ai résolu.

Tout d'abord, lorsque vous archivez votre projet, sous les droits d'accès, si vous ne voyez pas aps-environment et que votre application utilise les notifications Push, vous recevrez alors l'avertissement mentionné dans la question.

FIX STEPS  

1- Assurez-vous que votre profil de distribution est valide sur le portail Apple. - Si ce n'est pas le cas, régénérez-le . 2- Si votre profil de distribution est valide, allez dans XCode, accédez à Préférences puis cliquez sur Afficher les détails . À ce stade, sous Profils de provisioning , assurez-vous de ne pas avoir de fichiers de provisioning de distribution non valides. S'il y en a, faites un clic droit et déplacez-les dans la corbeille. Si vous ne possédez pas le bon, téléchargez-le depuis le portail . 3- Allez dans Paramètres de construction -> Signature du code et pour tout choisissez le profil d'approvisionnement de distribution.

À ce stade, si vous archivez, vous pouvez voir l’environnement aps dans vos droits et le courrier d’avertissement ne viendra pas.

2
neo

J'ai une application Cordova, sur laquelle j'ai déjà reçu des notifications, mais que je voulais supprimer de l'application. J'ai essayé de suivre les réponses ci-dessus, mais j'ai quand même rencontré ce problème lorsque j'ai téléchargé le build. Je me suis rendu compte que j'avais un plugin installé, qui utilisait le paramètre de notification et qui maintenait en quelque sorte certains paramètres activés pour les notifications.

J'ai résolu le problème en supprimant complètement cordova platform rm ios de la plate-forme ios, en l'ajoutant à nouveau cordova platform add ios et en m'assurant que le plug-in avait été supprimé des fichiers ios.json et fetch.json.

0
Lirianna