checkApp

Store

ITMS-91053: Missing API declaration

API con motivazione obbligatoria usata senza dichiararla.

Che cos'è ITMS-91053?

Il rifiuto di Apple per una API con motivazione obbligatoria chiamata senza che il privacy manifest ne dichiari il motivo. Arriva al caricamento, elenca le API trovate, e non c'è nessun build di avviso prima. L'audit di idoneità agli store riguarda soprattutto questa classe di problemi.

Da dove arriva in un'app Flutter

Apple cerca nei binari dell'app e di ogni plugin le chiamate alle API per cui va dichiarato un motivo, e le confronta con i privacy manifest nella build. In un'app Flutter le chiamate arrivano di solito dai plugin: shared_preferences legge gli user defaults, i plugin che lavorano con i file possono leggerne i timestamp, e alcuni SDK leggono lo spazio libero o il tempo di avvio del sistema. Un plugin distribuito come framework porta il proprio PrivacyInfo.xcprivacy; uno collegato staticamente lo porta in un resource bundle. Una versione del plugin senza manifest, o il vostro codice nativo, ricade sul manifest dell'app.

Come risolverlo

  1. Eseguite il controllo gratuito della build sull'.ipa. Indica la categoria di API e il framework da cui arriva la chiamata.
  2. Aggiornate quel plugin. Quelli più diffusi hanno aggiunto un privacy manifest nel 2024, quando Apple ha iniziato a richiederlo.
  3. Se la chiamata è nel vostro codice, o il plugin non si può aggiornare, aggiungete PrivacyInfo.xcprivacy al target Runner e dichiarate la categoria in NSPrivacyAccessedAPITypes con il motivo della lista di Apple adatto al vostro uso.
  4. Caricate di nuovo. L'email di App Store Connect elenca ogni categoria che trova ancora.

Il controllo gratuito della build legge il vostro .ipa nel browser e indica la causa di questo e degli altri rifiuti, senza caricare nulla.

Oppure fate verificare l'intera build: la verifica degli store costa 190 €, 2 giorni lavorativi.

Tutti i codici di rifiuto