checkApp

Stores

ITMS-91053: Missing API declaration

API mit Begründungspflicht ohne erklärten Grund.

Was ist ITMS-91053?

Apples Ablehnung, wenn eine API mit Begründungspflicht aufgerufen wird, ohne dass im Privacy-Manifest ein Grund steht. Sie kommt beim Upload, nennt die gefundenen APIs, und es gibt keinen Warndurchlauf davor. Die Store-Prüfung dreht sich überwiegend um diese Klasse von Problemen.

Woher das in einer Flutter-App kommt

Apple durchsucht die Binärdateien der App und jedes Plugins nach Aufrufen von APIs, für die ein Grund angegeben werden muss, und gleicht sie mit den Privacy-Manifesten im Build ab. In einer Flutter-App kommen die Aufrufe meist aus Plugins: shared_preferences liest User Defaults, Plugins, die mit Dateien arbeiten, lesen oft Zeitstempel von Dateien, manche SDKs lesen freien Speicherplatz oder die Systemstartzeit. Ein als Framework ausgeliefertes Plugin bringt sein eigenes PrivacyInfo.xcprivacy mit; ein statisch gelinktes bringt es in einem Resource-Bundle. Eine Plugin-Version ohne Manifest und Ihr eigener nativer Code fallen unter das Manifest der App.

So beheben Sie es

  1. Führen Sie die kostenlose Build-Prüfung mit der .ipa aus. Sie nennt die API-Kategorie und das Framework, aus dem der Aufruf kommt.
  2. Aktualisieren Sie dieses Plugin. Die verbreiteten Plugins haben 2024 ein Privacy-Manifest ergänzt, als Apple begann, das durchzusetzen.
  3. Steht der Aufruf in Ihrem eigenen Code oder lässt sich das Plugin nicht aktualisieren, fügen Sie dem Runner-Target ein PrivacyInfo.xcprivacy hinzu und deklarieren Sie die Kategorie unter NSPrivacyAccessedAPITypes mit dem Grund aus Apples Liste, der zu Ihrer Nutzung passt.
  4. Laden Sie erneut hoch. Die E-Mail von App Store Connect nennt jede Kategorie, die noch gefunden wird.

Die kostenlose Build-Prüfung liest Ihre .ipa im Browser und nennt die Ursache dieser und der anderen Ablehnungen, ohne etwas hochzuladen.

Oder lassen Sie den ganzen Build prüfen: Die Store-Prüfung kostet 190 €, 2 Arbeitstage.

Alle Ablehnungscodes