checkApp

Stores

ITMS-91053 : Missing API declaration

API à justification obligatoire utilisée sans raison déclarée.

Que signifie le rejet ITMS-91053 ?

C'est le rejet d'Apple pour l'appel d'une API à justification obligatoire sans raison déclarée dans un privacy manifest. Il tombe à l'envoi, nomme les API trouvées, et aucun build ne reçoit d'avertissement avant. L'audit de conformité aux stores porte essentiellement sur ce type de problème.

D'où cela vient dans une app Flutter

Apple analyse les binaires de l'app et de chaque plugin à la recherche d'appels aux API qu'il classe parmi celles qui exigent une justification, et les compare aux privacy manifests présents dans le build. Dans une app Flutter, ces appels viennent le plus souvent des plugins : shared_preferences lit les user defaults, les plugins qui manipulent des fichiers peuvent en lire les horodatages, et certains SDK lisent l'espace disque libre ou l'heure de démarrage du système. Un plugin distribué sous forme de framework embarque son propre PrivacyInfo.xcprivacy ; un plugin lié statiquement l'apporte dans un resource bundle. Une version de plugin qui n'en a pas, comme votre propre code natif, relève du manifest de l'app.

Comment corriger

  1. Lancez la vérification gratuite du build sur le .ipa. Elle nomme la catégorie d'API et le framework d'où vient l'appel.
  2. Mettez ce plugin à jour. Les plugins les plus utilisés ont ajouté un privacy manifest en 2024, quand Apple a commencé à l'exiger.
  3. Si l'appel se trouve dans votre propre code, ou si le plugin ne peut pas être mis à jour, ajoutez PrivacyInfo.xcprivacy à la cible Runner et déclarez la catégorie sous NSPrivacyAccessedAPITypes, avec la raison de la liste d'Apple qui correspond à votre usage.
  4. Envoyez de nouveau le build. L'e-mail d'App Store Connect liste chaque catégorie encore détectée.

La vérification gratuite du build lit votre .ipa dans le navigateur et nomme la cause de ce rejet et des autres, sans rien envoyer.

Ou faites vérifier le build entier : l'audit de conformité aux stores coûte 190 €, en 2 jours ouvrés.

Tous les codes de rejet