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:
optional func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
Ce qui précède remplace la version obsolète à partir d'iOS 11:
optional func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any])
Et celui-ci nécessite la capacité des modes d'arrière-plan:
optional func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
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:
Utilisez cette méthode pour traiter les notifications distantes entrantes pour votre application. Contrairement à la méthode application (_: didReceiveRemoteNotification :), qui est appelée uniquement lorsque votre application s'exécute au premier plan, le système appelle cette méthode lorsque votre application s'exécute au premier plan ou en arrière-plan.
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.