ITMS-91064: correggere “Invalid tracking information”
Di Mehdi Azizi
Pubblicato il , 5 min
ITMS-91064 Invalid tracking information: cosa significa, perché il manifesto della privacy viene rifiutato e come correggerlo in un'app Expo.
ITMS-91064 è un rifiuto automatico di Apple, inviato via e-mail dopo la consegna della tua build. Significa che le due chiavi di tracciamento del tuo manifesto della privacy si contraddicono. La correzione: mettere d'accordo NSPrivacyTracking e NSPrivacyTrackingDomains, poi rifare una build.
L'ho preso su TradaZen, la mia app di allenamento al trading, dopo aver aggiunto uno strumento di misurazione pubblicitaria. Ecco la causa e la correzione.
Cosa significa l'errore ITMS-91064?
Il messaggio si intitola "ITMS-91064: Invalid tracking information". Riguarda un file PrivacyInfo.xcprivacy, il manifesto della privacy che ogni app e ogni SDK può includere. Questo file contiene in particolare due chiavi legate al tracciamento, nel senso di App Tracking Transparency:
NSPrivacyTracking: vero se l'app o l'SDK usa dati per il tracciamento.NSPrivacyTrackingDomains: l'elenco dei domini contattati per questo tracciamento.
Apple descrive le tre combinazioni rifiutate nella sua nota tecnica sui manifesti non validi:
NSPrivacyTrackingè vero e l'elenco dei domini è vuoto. Bisogna compilare l'elenco. Era il mio caso.NSPrivacyTrackingè vero ma un dominio è scritto male. Un dominio si scrive senza percorso né barra finale.- Ci sono domini elencati mentre
NSPrivacyTrackingè falso. Bisogna togliere l'elenco.
La regola di fondo è nella documentazione sui manifesti della privacy: quando NSPrivacyTracking è vero, bisogna fornire l'elenco dei domini.
L'e-mail di Apple indica il nome e il percorso del file difettoso. Leggi quel percorso: ti dice se il problema viene dal manifesto della tua app o da quello di un SDK incluso.
Come per gli altri errori ITMS, non è il rifiuto di un reviewer. Il controllo è automatico, alla consegna della build, e la build viene scartata.
Perché succede: un manifesto per target
Ecco la trappola. Un SDK spesso include il proprio manifesto, con i suoi domini. Potresti pensare che basti. Ma anche la tua app ha il suo, e nel mio caso Apple ha rifiutato proprio quello dell'app.
Il mio caso, il 21 luglio 2026. Collegando uno strumento di misurazione pubblicitaria a TradaZen, avevo dichiarato NSPrivacyTracking: true nella configurazione dell'app, il che è corretto. Ma non avevo aggiunto NSPrivacyTrackingDomains. Il manifesto dell'SDK era completo. Quello dell'app, generato da Expo a partire dalla mia configurazione, diceva "vero" con un elenco vuoto. La build è stata rifiutata durante l'elaborazione.
La lezione: il manifesto dell'SDK non copre quello della tua app. Se dichiari tracciamento nella configurazione, dichiari anche i domini.
Correggere ITMS-91064 in un'app Expo
Con Expo, il manifesto dell'app si imposta nella configurazione, sotto ios.privacyManifests. Il principio è nella documentazione di Expo sulla privacy, e la chiave nel riferimento della configurazione.
- Ritrova i domini di tracciamento dell'SDK. Copia l'elenco dal manifesto della versione inclusa nella tua build, non da quello dell'ultima versione online: possono essere diversi. Non inventarli.
- Aggiungili alla tua configurazione. I due domini qui sotto sono esempi da sostituire:
{
"expo": {
"ios": {
"privacyManifests": {
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"example-tracking-domain.com",
"other-tracking-domain.com"
]
}
}
}
}
- Controlla il file generato prima di pagare una build, se la tua cartella
iosè generata da Expo e ignorata da git. Lancianpx expo prebuild -p ios, poi apri il filePrivacyInfo.xcprivacycreato nella cartellaios. Deve contenereNSPrivacyTrackingatruee l'elenco completo dei domini. - Rifai una build e rimandala. Il manifesto fa parte del binario: un aggiornamento remoto non lo modifica.
Attenzione al passaggio 3: questo comando può eliminare e poi ricreare la cartella ios. Se ci hai fatto modifiche a mano, non lanciarlo sul tuo progetto. Lavora su una copia.
Se la tua app non fa alcun tracciamento, la strada è più breve: imposta NSPrivacyTracking a false e togli l'elenco.
Cosa cambiano questi domini per i tuoi utenti
Dichiarare questi domini non è una formalità. Secondo la documentazione di Apple, se l'utente non ha accettato il tracciamento nella finestra di App Tracking Transparency, le richieste verso questi domini falliscono. È il comportamento previsto: il tracciamento parte solo se la persona ha detto sì.
La tua scheda App Store deve raccontare la stessa cosa. Se il tuo manifesto dichiara tracciamento, anche le dichiarazioni sulla privacy della scheda e la tua informativa sulla privacy devono dirlo. Altrimenti rischi poi il rifiuto di un reviewer, in base alle guideline 5.1.1 o 5.1.2: i dettagli sono in informativa sulla privacy di un'app.
Inviare la tua build senza brutte sorprese
Gli errori ITMS si correggono in fretta quando sai leggerli. I rifiuti che arrivano dopo richiedono più distacco: il metodo è nella pagina app rifiutata da Apple, e i motivi più frequenti sono in perché Apple rifiuta un'app.
Per controllare il tuo progetto prima dell'invio, l'Apple Review Kit riunisce la mia checklist e delle skill Claude Code che rileggono il tuo progetto. Se l'invio si blocca e vuoi uno sguardo umano, prenota un'ora con me: riprendiamo il tuo progetto in videochiamata, sul tuo schermo. E se stai preparando la tua prima uscita, fai la tua diagnosi gratuita: rimette in ordine i passaggi e ti invia la mia checklist anti-rifiuto Apple.
Domande frequenti
ITMS-91064 è un rifiuto di App Review?
Non nel senso di un reviewer umano. È un controllo automatico fatto sulla build alla consegna, prima della revisione. La build viene scartata: bisogna correggere il manifesto della privacy e inviare una nuova build.
Cosa bisogna mettere in NSPrivacyTrackingDomains?
I domini che la tua app o i tuoi SDK contattano per il tracciamento. Copia quelli che l'SDK elenca nel manifesto della versione inclusa nella tua build. Un elenco vuoto con NSPrivacyTracking a true è una delle combinazioni che Apple rifiuta.
Il manifesto del mio SDK non basta?
No. Su TradaZen il manifesto dell'SDK era completo e la build è stata comunque rifiutata: quello dell'app dichiarava tracciamento senza alcun dominio. Se la configurazione della tua app dichiara tracciamento, deve anche elencare i domini.
La mia app non fa tracciamento: cosa devo fare?
Imposta NSPrivacyTracking a false nella configurazione e togli l'elenco dei domini. Poi controlla che la tua scheda App Store e la tua informativa sulla privacy dicano la stessa cosa.
Si può correggere ITMS-91064 senza rifare una build?
No. Il manifesto della privacy fa parte del binario inviato ad Apple. Bisogna correggere la configurazione, rifare una build e rimandarla.