Parcours techniquesMis à jour le 22 octobre 20268 min de lecture

Manifeste de confidentialité iOS et SDK tiers : ce qu'il faut vérifier

PrivacyInfo.xcprivacy, raisons des API sensibles, SDK tiers listés par Apple, configuration Expo dans app.json : vérifier le manifeste de ton app iOS.

Sources Apple vérifiées le 22 octobre 2026 · relu par Équipe Briksell

Sommaire

Réponse courte

Le manifeste de confidentialité est un petit fichier, nommé PrivacyInfo.xcprivacy, rangé dans ton app. Il décrit deux choses :

  • les types de données que ton app (ou une bibliothèque qu'elle contient) collecte ;
  • les « required reason APIs » qu'elle utilise : des fonctions du système qui pourraient servir à reconnaître un appareil, et dont Apple exige que tu déclares la raison d'utilisation.

Depuis le 1er mai 2024, App Store Connect n'accepte plus une app qui utilise ces API sans en donner la raison dans son manifeste. Certains SDK tiers (des briques de code d'autres entreprises, comme Firebase) doivent aussi fournir leur propre manifeste.

Avec Expo, tu n'écris pas ce fichier à la main : tu remplis le champ expo.ios.privacyManifests dans app.json, et Expo le génère au moment du build.

Le manifeste ne remplace pas les étiquettes App Privacy de ta fiche App Store : les deux doivent raconter la même histoire.

Qui est concerné, et les exceptions

Toutes les apps iOS qui utilisent ces API

L'obligation de déclarer une raison vaut pour iOS, iPadOS, tvOS, visionOS et watchOS. Elle s'applique au code que tu écris et au code des bibliothèques que tu ajoutes. En pratique, presque toutes les apps React Native et Expo sont concernées, car des bibliothèques très courantes utilisent ces API.

Les apps qui contiennent un SDK de la liste Apple

Apple publie une liste de SDK tiers qui doivent obligatoirement fournir un manifeste et une signature (une preuve que le code vient bien de son éditeur). On y trouve par exemple les modules Firebase (FirebaseCore, FirebaseAuth, FirebaseCrashlytics, FirebaseMessaging…), Alamofire, Kingfisher, Lottie, OneSignal, SDWebImage, Starscream ou RealmSwift. Toute version d'un SDK listé est concernée, ainsi que les SDK qui l'embarquent.

Cette exigence s'applique quand tu soumets une nouvelle app qui contient l'un de ces SDK, ou une mise à jour qui en ajoute un.

Ce que le manifeste ne fait pas

Il ne te dispense pas de demander les autorisations (caméra, position…) ni d'écrire ta politique de confidentialité. Et Apple rappelle que tu es responsable de tout le code qu'un SDK ajoute à ton app.

Quelles API demandent une raison ?

Apple les classe en cinq catégories :

Catégorie (nom technique)En clair
NSPrivacyAccessedAPICategoryFileTimestampLire la date de création ou modification de fichiers
NSPrivacyAccessedAPICategorySystemBootTimeSavoir depuis quand l'appareil est allumé
NSPrivacyAccessedAPICategoryDiskSpaceConnaître l'espace disque disponible
NSPrivacyAccessedAPICategoryActiveKeyboardsConnaître les claviers actifs
NSPrivacyAccessedAPICategoryUserDefaultsLire et écrire les préférences de l'app

Pour chaque catégorie utilisée, tu indiques un ou plusieurs codes de raison choisis dans la liste d'Apple. Exemple : le code CA92.1 correspond à l'accès aux préférences (« user defaults ») pour lire et écrire des informations accessibles uniquement à l'app elle-même.

Apple est strict sur un point : la raison déclarée doit correspondre à ce que fait vraiment l'app, et ces API ne doivent jamais servir à pister l'utilisateur. Apple interdit le « fingerprinting » (identifier un appareil à partir de ses caractéristiques), même si l'utilisateur a accepté le suivi.

Procédure pas à pas

Les étapes ci-dessous partent d'un projet Expo, la technologie des apps créées avec Briksell.

Étape 1 : mettre à jour les bibliothèques Expo

La documentation Expo indique que tous les paquets du SDK Expo qui utilisent des « required reason APIs » contiennent déjà leur fichier PrivacyInfo. Commence par les mettre à jour pour ta version de SDK avec la commande npx expo install --fix.

Étape 2 : déclarer les raisons dans app.json

Voici l'exemple donné par la documentation Expo :

{
  "expo": {
    "name": "My App",
    "slug": "my-app",
    "ios": {
      "privacyManifests": {
        "NSPrivacyAccessedAPITypes": [
          {
            "NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategoryUserDefaults",
            "NSPrivacyAccessedAPITypeReasons": ["CA92.1"]
          }
        ]
      }
    }
  }
}

Pourquoi le faire alors que les paquets Expo ont déjà leur fichier ? Expo explique qu'Apple ne lit pas correctement tous les fichiers PrivacyInfo fournis par certaines dépendances (celles installées de façon « statique » via CocoaPods, ce qui est le cas des paquets Expo et de nombreuses bibliothèques). Il peut donc falloir recopier leurs raisons dans la configuration de ton app.

Si ton projet n'utilise pas la génération automatique du dossier iOS par Expo (appelée CNG), tu modifies directement le fichier PrivacyInfo.xcprivacy de l'app dans Xcode.

Étape 3 : vérifier les autres bibliothèques

Pour chaque bibliothèque non Expo, regarde s'il existe un fichier PrivacyInfo.xcprivacy dans le dossier node_modules/nom-du-paquet/ios. Si oui, relève les valeurs NSPrivacyAccessedAPITypes et NSPrivacyAccessedAPITypeReasons et recopie-les dans ton app.json. Si la bibliothèque contient un SDK de la liste Apple, vérifie que tu utilises une version récente qui fournit son manifeste.

Étape 4 : envoyer un build et lire l'e-mail d'Apple

Expo indique qu'on teste le manifeste en construisant l'app et en l'envoyant, à la revue ou à la revue TestFlight externe. Apple t'écrit dans les minutes qui suivent s'il manque une raison, en listant les API concernées. Ajoute-les, refais un build, renvoie. Pour l'envoi, vois TestFlight : tester son app avant publication.

Étape 5 : comparer avec App Privacy

Au moment de distribuer l'app, Xcode réunit les manifestes de tous les SDK dans un rapport unique. Sers-t'en pour vérifier tes réponses App Privacy dans App Store Connect : Apple demande d'y déclarer les données collectées par toi et par tes partenaires tiers (outils de statistiques, régies publicitaires, SDK). Le détail est dans Étiquettes de confidentialité App Store.

Et avec Briksell ?

Briksell écrit le code d'une vraie app React Native / Expo, avec un fichier app.json. Aujourd'hui, l'aperçu et le test par QR code s'ouvrent dans le navigateur du téléphone : le manifeste n'y joue aucun rôle, il ne compte que pour un build iOS envoyé à Apple. L'envoi sur TestFlight et la publication depuis Briksell arrivent bientôt ; en attendant, tu exportes le code et tu construis l'app avec EAS Build d'Expo.

Les abonnés peuvent lancer App Store Readiness, qui contrôle le code sur les règles Apple qui concernent l'app et peut corriger avec l'agent. Seule Apple valide : l'e-mail reçu après l'envoi reste la vérification finale. Pour l'ensemble des contrôles techniques, lis Préparer techniquement une app iOS avant App Review.

Erreurs fréquentes

Choisir une raison au hasard pour faire disparaître l'e-mail

La raison doit refléter l'usage réel. Une raison fausse, c'est une déclaration inexacte à Apple.

Garder un vieux SDK

Une ancienne version d'un SDK listé peut ne pas contenir de manifeste. Mets à jour avant de soumettre.

Oublier les dépendances des dépendances

Une bibliothèque peut en embarquer une autre qui utilise ces API. L'e-mail d'Apple est souvent le seul moyen de s'en rendre compte.

Un manifeste qui dit autre chose qu'App Privacy

Si ton manifeste indique une collecte de données et que ta fiche affirme « Aucune donnée collectée », tu as un problème de cohérence à corriger.

Ignorer l'e-mail d'Apple

Les avertissements arrivent à l'adresse du compte. Sans correction, App Store Connect refuse l'envoi.

Vérification

Coche chaque point avant d'envoyer ton build. La liste est enregistrée seulement dans ton navigateur.

Ta checklist0/7

Tes cases sont gardées dans ce navigateur. Cocher une case ne prouve rien à Apple : vérifie chaque point pour de vrai.

Sources Apple et date de vérification

Vérifié le 22 octobre 2026 sur les pages officielles d'Apple et d'Expo :

FAQ

Mon app Expo a-t-elle besoin d'un manifeste ?

Très probablement, dès qu'elle ou ses bibliothèques utilisent une des cinq catégories d'API. La méthode la plus sûre : déclarer ce que tu sais dans app.json, envoyer un build, puis compléter avec l'e-mail d'Apple.

Où trouver la liste des SDK concernés ?

Sur la page Third-party SDK requirements d'Apple, qui évolue : consulte-la avant chaque ajout de SDK.

Que se passe-t-il si une raison manque ?

Apple envoie un e-mail de rappel, et depuis le 1er mai 2024 App Store Connect n'accepte pas l'app tant que la raison n'est pas déclarée.

Faut-il un Mac pour tout ça ?

Pas pour le manifeste : avec Expo, il se configure dans app.json, sans ouvrir Xcode. Pour le build et l'envoi, voir Publier sur l'App Store sans Mac.

Passer à l'action

Le manifeste se prépare au moment du build, mais il se pense dès le choix des bibliothèques. Décris ton app à Briksell, teste-la sur ton téléphone, puis exporte le code et complète app.json avant ton premier envoi à Apple. Créer mon app.

Sources officielles

À lire ensuite

← Tous les guides « Parcours techniques »Tous les thèmes