Background Modes dans iOS — définition, types de modes et configuration

Auteur : IT Sectr Publié le : 2026-03-27 Temps de lecture : 9 min

Background Modes sont un ensemble de capacités déclarables d’iOS qui permettent à une application de continuer à exécuter du code après être passée en arrière-plan. Chaque mode correspond à un type de tâche spécifique : audio, géolocalisation, VoIP, Bluetooth, fetch et processing. Selon Apple, 2026, une utilisation incorrecte des Background Modes est l’une des causes fréquentes de rejet des applications lors de la révision dans l’App Store.

Points clés

  • Background Modes — ensemble de capacités iOS pour l’exécution légitime de code en arrière-plan.
  • Mode Audio — lecture de musique, podcasts, livres audio en arrière-plan avec contrôle via le Centre de contrôle.
  • Géolocalisation — suivi de localisation en arrière-plan pour la navigation et les trackers de fitness.
  • Bluetooth — travail avec des périphériques BLE en arrière-plan : bracelets fitness, capteurs, périphériques.
  • Révision Apple — une utilisation inappropriée des modes entraîne le rejet de l’application de l’App Store.

Que sont les Background Modes dans iOS ?

Background Modes sont des capacités du projet Xcode qui déclarent l’intention de l’application d’effectuer des types spécifiques d’opérations en arrière-plan. Contrairement à Android, où une application peut lancer n’importe quel Service en arrière-plan, iOS nécessite une déclaration explicite du mode dans Info.plist. Chaque mode a des règles d’utilisation strictes et est vérifié par Apple lors de la révision.

Comment fonctionnent les Background Modes

Lorsqu’une application passe en arrière-plan, iOS la suspend en 3–5 secondes. Si l’application déclare un Background Mode et utilise activement l’API correspondante (par exemple, AVAudioSession pour l’audio), le système la place dans un mode d’exécution spécial. L’application reste en mémoire et peut exécuter du code limité par le type de mode.

Liste complète des modes disponibles

iOS prend en charge les Background Modes suivants : Audio, Location, VoIP, Bluetooth LE (accessoires BLE), Background Fetch (mises à jour périodiques), Background Processing (tâches longues), External Accessory Communication, Push to Talk (PTT) et HealthKit. Chaque mode nécessite une justification dans la description de l’application.

ModeClé Info.plistObjectifVersion iOS
AudioaudioAudio en arrière-plan, AirPlay4.0+
LocationlocationSuivi de localisation4.0+
VoIPvoipNotifications push VoIP4.0+
BLEbluetooth-centralTravail avec des périphériques BLE7.0+
FetchfetchTéléchargement périodique de données7.0+
ProcessingprocessingTâches longues en arrière-plan13.0+
Push to Talkpush-to-talkVoix push-to-talk16.0+

Mode Audio (Audio, AirPlay et Picture in Picture)

Mode Audio en arrière-plan est le mode le plus courant, utilisé par les lecteurs de musique, les applications de podcast et les services audio. L’application peut continuer la lecture audio, être contrôlée via le Centre de contrôle et apparaître sur l’écran de verrouillage. Pour l’activer, il suffit de configurer AVAudioSession avec la catégorie .playback.

Configuration de la session audio

Pour que l’audio fonctionne en arrière-plan, il est nécessaire de configurer AVAudioSession et de l’activer. La catégorie .playback indique au système que l’application lit de l’audio et doit rester active en arrière-plan. Sans cette configuration, l’audio s’arrêtera 5–10 secondes après la réduction de l’application.

swift
import AVFoundation

func configureAudioSession() {
    let session = AVAudioSession.sharedInstance()
    do {
        try session.setCategory(
            .playback,
            mode: .default,
            options: []
        )
        try session.setActive(true)
    } catch {
        print("Erreur de session audio : \(error)")
    }
}

Contrôle de la lecture depuis le Centre de contrôle

Pour l’intégration avec le Centre de contrôle et l’écran de verrouillage, il est nécessaire de configurer MPRemoteCommandCenter. Il gère les commandes Lecture, Pause, Suivant et Précédent. Il est également nécessaire de mettre à jour MPNowPlayingInfoProperty pour afficher les métadonnées : nom du morceau, artiste, pochette et progression de la lecture.

Picture in Picture pour la vidéo

À partir d’iOS 14, le Mode Audio en arrière-plan prend également en charge Picture in Picture pour la vidéo. L’application peut continuer à afficher la vidéo dans une fenêtre flottante lorsqu’elle est réduite. Pour l’activer, utilisez AVPictureInPictureController avec AVPlayerLayer. Ce mode fonctionne uniquement si l’application lit une piste audio.

Géolocalisation (Mises à jour de localisation)

Mode de localisation en arrière-plan permet à l’application de recevoir des mises à jour de localisation en arrière-plan. Il est utilisé dans les applications de navigation, les trackers de fitness, les applications de livraison et les réseaux sociaux. Sans ce mode, l’application reçoit la localisation une seule fois en passant en arrière-plan, après quoi les mises à jour s’arrêtent.

Types de suivi de localisation

CLLocationManager prend en charge plusieurs stratégies de suivi : changements significatifs de localisation, suivi standard et surveillance de régions. Pour travailler en arrière-plan avec une précision maximale, utilisez allowsBackgroundLocationUpdates = true et pausesLocationUpdatesAutomatically = false.

Efficacité énergétique et précision

Le suivi continu de la localisation en arrière-plan est l’un des scénarios les plus énergivores. iOS ajuste automatiquement la fréquence des mises à jour en fonction de la vitesse de déplacement : en marchant, toutes les 10–30 secondes ; en conduisant, toutes les 1–5 secondes. Pour la navigation, utilisez desiredAccuracy = kCLLocationAccuracyBestForNavigation.

swift
let locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()
locationManager.allowsBackgroundLocationUpdates = true
locationManager.pausesLocationUpdatesAutomatically = false
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.activityType = .fitness
locationManager.startUpdatingLocation()

Changements significatifs de localisation

Le mode significant-change location fonctionne sans Mode de localisation en arrière-plan — le système réveille l’application uniquement lorsque les coordonnées changent significativement (généralement 500 m ou plus). Il ne nécessite pas de GPS constant, économisant la batterie. Idéal pour les applications météo qui mettent à jour les données lorsque l’utilisateur se déplace.

Mode Bluetooth (Accessoires LE)

Mode Bluetooth LE en arrière-plan permet à l’application d’interagir avec des périphériques BLE en arrière-plan. Il est utilisé par les bracelets fitness, les capteurs médicaux, les appareils domotiques et la navigation par balises. Le mode se divise en deux sous-types : bluetooth-central (l’application se connecte aux périphériques) et bluetooth-peripheral (l’application agit comme un périphérique).

Travail en mode Central

Une application agissant en tant que Central peut analyser et se connecter à des périphériques BLE en arrière-plan. Pour ce faire, spécifiez bluetooth-central dans Background Modes et appelez CBCentralManager.scanForPeripherals avec l’option CBCentralManagerScanOptionAllowDuplicatesKey. En arrière-plan, l’analyse fonctionne à fréquence réduite — le système peut retarder la découverte pour économiser de l’énergie.

Travail en mode Peripheral

Une application agissant en tant que Peripheral peut annoncer des services et répondre aux demandes d’autres périphériques. Le mode bluetooth-peripheral permet à l’application de rester visible pour les autres périphériques BLE, même en arrière-plan. Il est utilisé dans les applications HealthKit et les solutions IoT.

Surveillance des balises et des régions

La surveillance iBeacon fonctionne en arrière-plan sans autorisations supplémentaires — le système lui-même suit les entrées et sorties des régions de balises. Cependant, pour analyser le contenu d’une balise (UUID de proximité, major, minor), une autorisation Bluetooth et le mode bluetooth-central Background Mode sont nécessaires. Utilisez CLLocationManager avec CLBeaconRegion pour la surveillance.

VoIP et PushKit pour les applications de communication

Mode VoIP en arrière-plan est conçu pour les applications de communication vocale (Skype, Zoom, WhatsApp). Ce mode permet à l’application de rester connectée au serveur pour recevoir les appels entrants. À partir d’iOS 8, PushKit est utilisé pour la VoIP — un framework qui gère les notifications push du serveur VoIP sans impliquer APNs.

PushKit pour les appels entrants

PushKit est le seul mécanisme garantissant la livraison des notifications VoIP au périphérique. À la réception d’une notification PushKit, le système réveille l’application, même si elle a été terminée. L’application doit établir une connexion avec le serveur dans les 30 secondes et afficher une notification locale pour l’appel entrant.

swift
import PushKit

class VoIPHandler: NSObject, PKPushRegistryDelegate {
    func pushRegistry(
        _ registry: PKPushRegistry,
        didReceiveIncomingPushWith payload: PKPushPayload,
        for type: PKPushType,
        completion: @escaping () -> Void
    ) {
        let caller = payload.dictionaryPayload["caller"] as! String
        reportIncomingCall(from: caller)
        completion()
    }
}

Règles d’utilisation de PushKit

PushKit ne peut pas être utilisé pour les notifications ordinaires — uniquement pour la VoIP, les communications watchOS et les fournisseurs de fichiers. Apple vérifie cela lors de la révision. Une utilisation inappropriée entraîne le rejet de l’application. À partir d’iOS 13, PushKit ne fait que délivrer la notification — il est obligatoire d’appeler CXProvider (CallKit) pour afficher l’écran d’appel.

Modes Fetch et Processing

Background Fetch et Background Processing sont des modes pour les mises à jour de contenu en arrière-plan et les tâches longues. Fetch est pour les mises à jour périodiques courtes (jusqu’à 30 s), Processing pour les tâches longues (jusqu’à 10 min) avec conditions (Wi-Fi, charge). Processing n’est disponible que sur iOS 13+.

Background Fetch — Mises à jour rapides

Le mode Fetch permet au système de réveiller périodiquement l’application pour télécharger du nouveau contenu. Le système analyse le comportement de l’utilisateur et sélectionne le moment optimal. L’application doit appeler le gestionnaire d’achèvement dans les 30 secondes. Fetch convient aux applications d’actualités, aux flux de réseaux sociaux et à la météo.

Background Processing — Tâches longues

BGProcessingTask est conçue pour les tâches pouvant être exécutées sans intervention de l’utilisateur : nettoyage du cache, synchronisation d’une grande base de données, traitement de fichiers média. Le système lance la tâche uniquement dans des conditions favorables — périphérique en charge, connecté au Wi-Fi, pas en mode basse consommation. Disponible jusqu’à 10 minutes.

Planification et exigences

Pour BGProcessingTask, vous devez spécifier requiresExternalPower et requiresNetworkConnectivity. Le système peut reporter l’exécution indéfiniment si les conditions ne sont pas remplies. Contrairement à BGAppRefreshTask, qui doit s’exécuter au moins une fois par jour, Processing peut ne pas s’exécuter pendant des semaines si le périphérique est rarement chargé.

Directives de révision de l’App Store pour les Background Modes

Apple vérifie strictement l’utilisation des Background Modes lors de la révision des applications. La règle principale : chaque mode activé doit être justifié par la fonctionnalité de l’application. Si une application déclare le Mode Localisation mais n’utilise pas la géolocalisation, elle sera rejetée avec l’obligation de supprimer la capacité.

Causes fréquentes de rejet

Les violations les plus courantes : Mode Localisation sans nécessité explicite (l’application demande un accès « Toujours » pour afficher des publicités), Mode Audio sans lecture audio en arrière-plan, VoIP sans PushKit, Mode BLE sans périphériques Bluetooth. Apple peut rejeter l’application même lors de la mise à jour si le mode n’est plus utilisé.

Description dans les notes de révision

Lors de la soumission pour révision, fournissez une justification spécifique pour chaque mode dans les Notes. Par exemple, « Le Mode Localisation en arrière-plan est utilisé pour suivre l’itinéraire de l’utilisateur dans la fonctionnalité fitness. » Sans explication, le réviseur peut rejeter l’application. Pour les fonctionnalités confidentielles (VoIP), Apple peut demander un compte de test.

Recommandations pour minimiser les modes

Utilisez l’ensemble minimal nécessaire de modes. Si votre application a besoin d’un téléchargement de données en arrière-plan une fois par heure — n’activez pas le Mode Localisation, utilisez Fetch ou BGAppRefreshTask. Les modes supplémentaires conduisent non seulement au rejet, mais créent également une impression négative : l’utilisateur voit dans les Réglages que l’application utilise la géolocalisation en arrière-plan.

Questions fréquentes

Combien de Background Modes peuvent être activés dans une seule application ?

Il n’y a pas de limite de quantité, mais chaque mode doit être justifié par la fonctionnalité de l’application. Activer tous les modes sans nécessité est une raison garantie de rejet lors de la révision. Une limite pratique est de 2–3 modes par application, sinon l’utilisateur verra de nombreuses demandes d’autorisation.

Comment vérifier si un Background Mode est actif ?

Utilisez UIApplication.shared.applicationState — l’application peut vérifier si elle est en arrière-plan (state == .background). Vous pouvez également observer les notifications UIApplication.didEnterBackgroundNotification et willEnterForegroundNotification pour changer de comportement.

Quelle est la différence entre les modes Audio et AirPlay Background ?

Audio — lecture du son via le haut-parleur ou les écouteurs. AirPlay — diffusion audio et vidéo vers Apple TV et d’autres périphériques AirPlay. En pratique, le Mode Audio couvre les deux scénarios car AirPlay utilise la session audio. Un mode AirPlay séparé n’est pas nécessaire depuis iOS 7+.

Puis-je utiliser la localisation en arrière-plan uniquement lorsque l’application est ouverte ?

Oui, pour cela utilisez requestWhenInUseAuthorization() au lieu de requestAlwaysAuthorization(). L’application recevra la localisation uniquement au premier plan. Si un suivi court en arrière-plan est nécessaire, appelez startUpdatingLocation() et arrêtez-le dans willResignActive.

Comment les Background Modes affectent-ils la batterie ?

Chaque mode augmente la consommation d’énergie. Le Mode Localisation est le plus exigeant, pouvant réduire l’autonomie de la batterie de 30–50% en suivi continu. Le Mode Audio est modéré (15–20%). Fetch et Processing sont minimes (2–5%). Le Mode BLE est faible (5–10%) grâce à l’efficacité énergétique du Bluetooth LE.

Résumé

  • Background Modes — capacités déclarables d’iOS permettant à une application d’exécuter légitimement du code en arrière-plan.
  • Mode Audio — le plus courant, pour lire de la musique, des podcasts et des vidéos via AVAudioSession avec la catégorie .playback.
  • Mode Localisation — pour la navigation et le fitness, le plus énergivore, nécessite requestAlwaysAuthorization et allowsBackgroundLocationUpdates.
  • Mode BLE — travail avec des périphériques Bluetooth en arrière-plan via CBCentralManager avec analyse en arrière-plan.
  • VoIP et PushKit — pour les applications de communication, garantit la livraison des appels entrants via PKPushRegistry.
  • Fetch et Processing — tâches courtes et longues en arrière-plan avec différentes conditions d’exécution et limites de temps.
  • Apple vérifie strictement la justification de chaque mode — une utilisation inappropriée entraîne le rejet de l’application de l’App Store.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi