ITMS-91064: corregir «Invalid tracking information»
Por Mehdi Azizi
Publicado el , 5 min
ITMS-91064 Invalid tracking information: qué significa, por qué Apple rechaza el manifiesto de privacidad y cómo corregirlo en una app Expo.
ITMS-91064 es un rechazo automático de Apple, que te llega por correo después de entregar tu build. Significa que las dos claves de seguimiento de tu manifiesto de privacidad se contradicen. La solución: poner de acuerdo NSPrivacyTracking y NSPrivacyTrackingDomains, y luego hacer un nuevo build.
Me pasó con TradaZen, mi app para practicar trading, después de agregar una herramienta de medición publicitaria. Aquí va la causa y la solución.
¿Qué significa el error ITMS-91064?
El mensaje se titula «ITMS-91064: Invalid tracking information». Apunta a un archivo PrivacyInfo.xcprivacy, el manifiesto de privacidad que cada app y cada SDK puede incluir. Este archivo contiene, entre otras cosas, dos claves relacionadas con el seguimiento, en el sentido de App Tracking Transparency:
NSPrivacyTracking: verdadero si la app o el SDK usa datos para seguimiento.NSPrivacyTrackingDomains: la lista de dominios contactados para ese seguimiento.
Apple describe las tres combinaciones rechazadas en su nota técnica sobre los manifiestos inválidos:
NSPrivacyTrackinges verdadero y la lista de dominios está vacía. Hay que llenar la lista. Ese era mi caso.NSPrivacyTrackinges verdadero pero un dominio está mal escrito. Un dominio se escribe sin ruta ni barra final.- Hay dominios en la lista aunque
NSPrivacyTrackinges falso. Hay que quitar la lista.
La regla de fondo está en la documentación sobre los manifiestos de privacidad: cuando NSPrivacyTracking es verdadero, hay que proporcionar la lista de dominios.
El correo de Apple indica el nombre y la ruta del archivo con el problema. Lee esa ruta: te dice si el problema viene del manifiesto de tu app o del de un SDK incluido.
Como en los demás errores ITMS, no es el rechazo de un revisor. El control es automático, al entregar el build, y el build queda descartado.
Por qué pasa: un manifiesto por target
Esa es la trampa. Un SDK suele incluir su propio manifiesto, con sus dominios. Podrías creer que con eso basta. Pero tu app también tiene el suyo, y en mi caso fue el de la app el que Apple rechazó.
Mi caso, el 21 de julio de 2026. Al conectar una herramienta de medición publicitaria a TradaZen, había declarado NSPrivacyTracking: true en la configuración de la app, lo cual es correcto. Pero no había agregado NSPrivacyTrackingDomains. El manifiesto del SDK estaba completo. El de la app, generado por Expo a partir de mi configuración, decía «verdadero» con una lista vacía. El build fue rechazado durante el procesamiento.
La lección: el manifiesto del SDK no cubre el de tu app. Si declaras seguimiento en tu configuración, también declaras los dominios.
Corregir ITMS-91064 en una app Expo
Con Expo, el manifiesto de la app se configura en la configuración, bajo ios.privacyManifests. El principio está en la documentación de Expo sobre privacidad, y la clave en la referencia de configuración.
- Encuentra los dominios de seguimiento del SDK. Copia la lista del manifiesto de la versión que incluye tu build, no la de la última versión publicada: pueden ser distintas. No te los inventes.
- Agrégalos a tu configuración. Los dos dominios de abajo son ejemplos que debes reemplazar:
{
"expo": {
"ios": {
"privacyManifests": {
"NSPrivacyTracking": true,
"NSPrivacyTrackingDomains": [
"exemple-domaine-de-suivi.com",
"autre-domaine-de-suivi.com"
]
}
}
}
}
- Revisa el archivo generado antes de pagar un build, si tu carpeta
iosla genera Expo y está ignorada por git. Ejecutanpx expo prebuild -p iosy luego abre el archivoPrivacyInfo.xcprivacycreado en la carpetaios. Debe contenerNSPrivacyTrackingentruey la lista completa de dominios. - Haz un nuevo build y vuelve a enviarlo. El manifiesto forma parte del binario: una actualización remota no lo modifica.
Cuidado con el paso 3: este comando puede borrar y volver a crear la carpeta ios. Si hiciste cambios a mano ahí, no lo ejecutes en tu proyecto. Trabaja sobre una copia.
Si tu app no hace ningún seguimiento, el camino es más corto: pon NSPrivacyTracking en false y quita la lista.
Lo que estos dominios cambian para tus usuarios
Declarar estos dominios no es un simple trámite. Según la documentación de Apple, si el usuario no aceptó el seguimiento en la ventana de App Tracking Transparency, las solicitudes a esos dominios fallan. Es el comportamiento esperado: el seguimiento solo sale si la persona dijo que sí.
Tu ficha del App Store debe contar lo mismo. Si tu manifiesto declara seguimiento, las declaraciones de privacidad de tu ficha y tu política de privacidad también deben decirlo. Si no, te arriesgas después al rechazo de un revisor, por las guidelines 5.1.1 o 5.1.2: los detalles están en política de privacidad de una aplicación.
Enviar tu build sin sorpresas
Los errores ITMS se corrigen rápido cuando sabes leerlos. Los rechazos que vienen después requieren más perspectiva: el proceso está en la página aplicación rechazada por Apple, y los motivos más frecuentes en por qué Apple rechaza una app.
Para revisar tu proyecto antes del envío, el Apple Review Kit reúne mi checklist y skills de Claude Code que revisan tu proyecto. Si tu envío está bloqueado y quieres una mirada humana, reserva una hora conmigo: revisamos tu proyecto por videollamada, en tu pantalla. Y si estás preparando tu primer lanzamiento, haz tu diagnóstico gratuito: pone los pasos en orden y te envía mi checklist contra rechazos de Apple.
Preguntas frecuentes
¿ITMS-91064 es un rechazo de App Review?
No en el sentido de un revisor humano. Es un control automático que se hace sobre el build al entregarlo, antes de pasar a revisión. El build queda descartado: hay que corregir el manifiesto de privacidad y enviar un nuevo build.
¿Qué hay que poner en NSPrivacyTrackingDomains?
Los dominios que tu app o tus SDK contactan para el seguimiento. Copia los que el SDK lista en el manifiesto de la versión que incluye tu build. Una lista vacía con NSPrivacyTracking en true es una de las combinaciones que Apple rechaza.
¿No basta con el manifiesto de mi SDK?
No. En TradaZen, el manifiesto del SDK estaba completo y aun así el build fue rechazado: el de la app declaraba seguimiento sin ningún dominio. Si la configuración de tu app declara seguimiento, también debe listar los dominios.
Mi app no hace seguimiento: ¿qué hago?
Pon NSPrivacyTracking en false en tu configuración y quita la lista de dominios. Después verifica que tu ficha del App Store y tu política de privacidad digan lo mismo.
¿Se puede corregir ITMS-91064 sin hacer un nuevo build?
No. El manifiesto de privacidad forma parte del binario enviado a Apple. Hay que corregir la configuración, hacer un nuevo build y volver a enviarlo.