Ce que cela signifie
iOS affiche le texte d'usage dans la demande d'autorisation. App Store Connect le signale quand le code référence une API protégée ou que l'application a un entitlement qui donne cet accès, même si la référence vient d'un SDK que l'application n'appelle jamais. L'App Review vérifie ensuite le texte lui-même au titre de la règle 5.1.1 : il doit expliquer clairement et complètement pourquoi l'application a besoin des données.
Ce que vérifie le contrôle, à partir de l'IPA : chaque clé NS…UsageDescription présente est renseignée (sauf si un InfoPlist.strings localisé peut la fournir), et les entitlements HealthKit, HomeKit et NFC sont accompagnés de leurs clés. Il ne déduit pas le besoin d'une clé à partir de l'usage des API.
Échéance
Pas de date : la clé a toujours été exigée pour la ressource protégée.
Corriger
1. Ajouter la clé indiquée dans l'e-mail
<key>NSHealthShareUsageDescription</key>
<string>Reads your step count to show daily progress.</string>
<key>NSHealthUpdateUsageDescription</key>
<string>Saves the workouts you record in the app.</string>Écrivez précisément ce que l'utilisateur y gagne. Les textes d'un mot ("Santé", "Caméra") sont un motif de refus fréquent à l'App Review.
2. La traduire
Traduisez la clé dans InfoPlist.strings (ou le String Catalog) pour chaque langue livrée. Un fichier localisé peut fournir le texte quand la valeur de base est vide, ce que le contrôle signale comme non déterminé plutôt qu'en échec.
3. Entitlements sans fonctionnalité
Si l'application a l'entitlement HealthKit, HomeKit ou NFC sans fonctionnalité qui l'utilise, retirez la capacité dans Xcode au lieu d'écrire un texte d'usage.
Vérifier avant de soumettre
Déposez l'IPA sur la page de contrôle des stores. Elle exécute APPSTORE-PURPOSE-STRINGS avec les dates de cette page, puis supprime le fichier : rien de l'application n'est conservé. Le même moteur tourne hors ligne dans la CLI Narvy et renvoie le code 1 quand un point bloquant est trouvé, ce qui permet de bloquer un job de CI.
narvy store-check MyApp.ipa --lang frQuestions fréquentes
Mon application n'utilise jamais la caméra. Pourquoi Apple demande-t-il NSCameraUsageDescription ?
Parce qu'un SDK lié référence l'API de la caméra. Apple demande le texte même si votre code ne l'appelle jamais : ajoutez-en un honnête, ou retirez le SDK.
Pourquoi l'entitlement Siri n'est-il pas vérifié ?
L'entitlement Siri sert aussi aux intents et raccourcis qui ne demandent jamais l'autorisation Siri, et des applications de l'App Store le livrent sans NSSiriUsageDescription. Le vérifier produirait de fausses alertes.