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
- Eseguite il controllo gratuito della build sull'.ipa. Indica la categoria di API e il framework da cui arriva la chiamata.
- Aggiornate quel plugin. Quelli più diffusi hanno aggiunto un privacy manifest nel 2024, quando Apple ha iniziato a richiederlo.
- Se la chiamata è nel vostro codice, o il plugin non si può aggiornare, aggiungete
PrivacyInfo.xcprivacyal target Runner e dichiarate la categoria inNSPrivacyAccessedAPITypescon il motivo della lista di Apple adatto al vostro uso. - 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.