Ce que cela signifie
Le manifeste de confidentialité est une property list aux clés fixées. Erreurs fréquentes : un fichier modifié à la main qui ne se lit plus, un nom de catégorie mal orthographié, un code de justification inventé ou copié d'une autre catégorie, ou un tableau de justifications vide. Le fichier fautif appartient souvent à un bundle tiers, pas à l'application.
Le contrôle valide chaque manifeste de l'IPA au regard des catégories et codes d'Apple. Il signale aussi, en info, un bundle d'application sans manifeste à sa racine : Apple ne l'exige que si le code de l'application utilise des API à justification.
Échéance
Pas de date propre : un manifeste invalide est signalé à l'envoi.
Corriger
1. Ouvrir le fichier indiqué dans l'e-mail
plutil -lint Payload/MyApp.app/Frameworks/Foo.framework/PrivacyInfo.xcprivacy
plutil -p Payload/MyApp.app/Frameworks/Foo.framework/PrivacyInfo.xcprivacy2. N'utiliser que les catégories et codes d'Apple
Chaque NSPrivacyAccessedAPIType doit être l'une des cinq catégories, et chaque code de NSPrivacyAccessedAPITypeReasons doit appartenir à cette catégorie dans la liste d'Apple. Modifiez le fichier avec l'éditeur de property list de Xcode plutôt qu'à la main.
3. Mettre à jour le SDK si le fichier n'est pas le vôtre
Un manifeste défectueux dans un framework vient de son fournisseur : passez à une version corrigée.
Vérifier avant de soumettre
Déposez l'IPA sur la page de contrôle des stores. Elle exécute APPSTORE-PRIVACY-MANIFEST 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
L'absence de PrivacyInfo.xcprivacy à la racine de l'application est-elle une erreur ?
Seulement si le code de l'application utilise des API à justification (voir ITMS-91053). Sinon, Apple le recommande sans refuser son absence : le contrôle le signale donc en info.
Une plist valide peut-elle quand même être refusée ?
Oui, si une clé ou une valeur n'est pas définie par Apple. Être lisible ne suffit pas : il faut comparer catégories et codes à la liste d'Apple, ce que fait le contrôle.