← Nesim Apps

Por qué mi enlace de la App Store dio 404 y la página mostraba capturas de 2018

Por Nesim Razon, desarrollador Android independiente · 2026-11-16

#Notas de desarrollo#iOS

Una de mis apps, una app de resultados de lotería para Turquía, está en la App Store desde 2018. Este mes por fin recibió una versión moderna para iPhone. Después me sorprendieron dos cosas: el enlace de la tienda no funcionaba para la mayoría de la gente y la página ya aprobada seguía mostrando las capturas antiguas de 2018. Las dos tenían causas sencillas. Esto es lo que vi, y todo lo que sigue es lo que ocurrió en mi caso, no una regla general sobre cómo funciona Apple.

El enlace que mostraba «no encontrado»

Necesitaba el enlace de la tienda para el formulario «vincula tu app» de una red publicitaria, y también quería ponerlo en mi web. Usé la forma genérica, apps.apple.com/app/id<ID>. Desde mi propio teléfono funcionaba. Al probarlo desde otros sitios, y cuando el formulario de la red publicitaria intentó encontrar la app, decía que la app no se encontraba.

Por lo que he podido ver, ese enlace genérico envía a cada visitante a la tienda de su propia región. Mi app solo estaba disponible en la tienda de Turquía. Para un visitante cuya región de tienda era otra, la página a la que llegaba no tenía esa app, así que recibía un 404.

La solución: poner el país en el enlace

La forma con país, apps.apple.com/tr/app/id<ID>, funcionó con todos los que la probé, porque apunta a la única tienda donde existe la app. El formulario de la red publicitaria también encontró la app al usar ese enlace.

En mi web añadí un pequeño ajuste. La entrada de una app en la configuración puede escribirse como «tr:<ID>» en lugar de solo «<ID>», y la compilación genera entonces el enlace con país. Las entradas sin prefijo siguen generando el enlace genérico. Es un cambio diminuto, pero me evita corregir lo mismo a mano en cada página.

Una forma rápida de ver en qué tiendas está tu app

Apple tiene un punto de consulta público: itunes.apple.com/lookup?id=<ID>&country=<cc>. Para cada código de país de dos letras devuelve un JSON con resultCount. En mis comprobaciones el valor era 1 donde la app aparecía y 0 donde no. Recorrer una lista de países y ver cómo estás lleva segundos y no requiere iniciar sesión.

También lo ejecuté para una segunda app mía, recién publicada. Apareció en aproximadamente la mitad de las tiendas que probé: Estados Unidos, Reino Unido, Canadá, Australia, Turquía y algunas más. Todavía no aparecía en los países de la UE.

Que no aparezca puede significar cosas distintas

Las tiendas de la UE que faltaban coincidían con algo que vi en App Store Connect, un elemento de cumplimiento llamado «Digital Services Act» (Ley de Servicios Digitales) con el estado «In Review» (en revisión), que abarca 27 países y regiones. Trata de la verificación de comerciante. Así que, en esa app, el hueco era muy probablemente una revisión de cumplimiento, algo que no puedo arreglar cambiando un ajuste.

Eso es lo que me llevo. Un resultado 0 para un país puede significar al menos tres cosas distintas:

La segunda sorpresa: capturas de 2018

Cuando la versión nueva ya estaba aprobada y publicada, abrí la ficha de la tienda y las capturas seguían siendo las antiguas de 2018. Volví a consultar la API. Su lista screenshotUrls contenía siete imágenes, todas con la forma antigua, más estrecha, de 9:16. Mi nuevo conjunto de 6,9 pulgadas no estaba.

El Media Manager de App Store Connect mostraba el motivo. Mis capturas nuevas estaban en la sección obligatoria para los teléfonos más recientes, «iPhone with Dynamic Island (medium display)». Pero los conjuntos antiguos de versiones anteriores seguían presentes en otros tamaños de dispositivo, como «iPhone with Face ID (medium display)» y «iPhone with Home Button (large display)». En mi caso, la página usaba esos conjuntos antiguos y no el nuevo.

Arreglarlo exigió una versión nueva

Las capturas de una versión que ya está publicada no se podían editar. Así que creé la versión 4.0.1, borré allí los conjuntos antiguos y dejé solo el nuevo.

Una versión nueva también necesita una compilación con ese número de versión, así que tuve que compilar y subir un binario nuevo solo para cambiar las imágenes. Es una forma lenta de reemplazar capturas, pero no encontré otra opción para una versión publicada.

Lo cuento tal como me funcionó. No probé si otros tamaños se comportan igual en todas las fichas.

Qué haría distinto

De esto salen dos hábitos pequeños. Primero, cuando añado una versión moderna para iPhone a una ficha antigua, ahora limpio todos los conjuntos de tamaños de dispositivo antiguos antes de enviar, no solo la sección que parece obligatoria. Segundo, después de cada lanzamiento reviso la página pública real y la API de consulta, no solo las pantallas de App Store Connect, porque me mostraron cosas distintas.

Con los enlaces, ahora uso la forma con país siempre que una app no está disponible en todo el mundo, y ejecuto la consulta para un puñado de países antes de enviar un enlace a nadie, incluida una red publicitaria.

Preguntas frecuentes

¿Por qué mi enlace de la App Store mostraba «no encontrado» a algunas personas?

En mi caso el enlace genérico enviaba a cada visitante a su propia tienda y la app solo estaba disponible en un país. Para todos los demás la página no tenía esa app. El enlace con país funcionó.

¿Cómo puedo comprobar qué países muestran mi app?

Abre itunes.apple.com/lookup?id=<ID>&country=<cc> con un código de país de dos letras. En mis comprobaciones, resultCount 1 significaba que la app estaba listada allí y 0 que no.

¿Un resultado 0 siempre significa que la app está bloqueada?

No. Puede significar que el país no está seleccionado en la disponibilidad, que la versión aún se propaga o que hay una revisión de cumplimiento pendiente. Vi lo último con un elemento de la Ley de Servicios Digitales en revisión.

¿Por qué la ficha seguía mostrando capturas antiguas tras la actualización?

En mi caso seguían adjuntos conjuntos de capturas antiguos en otros tamaños de dispositivo y la página los usaba. Tuve que borrarlos en una versión nueva, la 4.0.1, y subir una compilación nueva.

Más del blog