J'ai intégré des notifications push à distance, mais je reçois cet avertissement:
didReceiveRemoteNotification:fetchCompletionHandler:]
, mais vous devez toujours ajouter "remote-notification
" à la liste de vosUIBackgroundMode
s pris en charge dans votreInfo.plist
.
Ma version Xcode est 8.3.1. Je veux vraiment ajouter ceci à Info.plist
. J'ai également suivi quelques tutoriels mais ils ne l'ont pas mentionné non plus. Que dois-je vraiment faire?
la source
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
fonction, qui est utilisée pour gérer la récupération de données.Vous pouvez également modifier le fichier info.plist nécessaire (Ouvrir en tant que -> Code source) et coller:
la source
En fait, vous n'avez pas besoin d'ajouter UIBackgroundModes à .plist simplement pour utiliser les notifications à distance.
Je sais que je partage un peu les héritiers (l'autre réponse est généralement excellente, et peut-être que quelque chose est nouveau à partir d'iOS 11), mais la question se réfère aux notifications push nécessitant des mises à jour en arrière-plan, et ce n'est pas le cas.
La distinction ici, c'est qu'il existe deux méthodes différentes qui acceptent les notifications sur AppDelegate;
Celui-ci ne vous oblige pas à utiliser UIBackgroundModes:
Ce qui précède remplace la version obsolète à partir d'iOS 11:
Et celui-ci nécessite la capacité des modes d'arrière-plan:
L'élément clé ici, c'est que l'ancien (et le déprécié qu'il a remplacé) ne fonctionne que lorsque l'application est au premier plan. Ce dernier fonctionnera si l'application est au premier plan OU en arrière-plan. Voir la spécification de ce nugget spécifique:
Par conséquent, si vous avez besoin de notifications push, décidez si vous devez exécuter en arrière-plan - ce n'est que si vous avez besoin des deux que vous devez implémenter la méthode suggérée par l'avertissement.
la source
Cela m'est arrivé même après avoir défini le mode d'arrière-plan des notifications à distance dans les capacités. Le problème était que j'avais trois objectifs, un pour la production, un pour le contrôle qualité et un pour la mise en scène. J'ai dû définir des notifications à distance dans les trois cibles et cela a corrigé l'avertissement.
la source