Un reenvío a App Review, y dos rarezas de App Store Connect que nadie documenta
Deep Cut Atlas fue rechazada por App Review por dos errores: texto de error crudo de MusicKit filtrándose a la interfaz, y un botón de compra que solo podía fallar. Los dos ya estaban arreglados y fusionados desde hacía días. Lo que quedaba era la parte aburrida, en realidad devolverle un build a Apple.
Pensé que el lado de App Store Connect sería mecánico. Completar unos metadatos de IAP, subir un número de build, reenviar. Aun así me tomó casi toda una sesión, y dos de los puntos donde me trabé no están documentados en ningún lado que haya podido encontrar.
El IAP nunca había sido enviado antes
Deep Cut Atlas tiene una compra única de “desbloquear Pro de por vida,” y resulta que una primera compra dentro de la app no consumible no puede simplemente quedarse ahí configurada. Apple exige que vaya acompañada de un envío real de una versión de la app. La propia página del IAP hasta muestra un banner que lo dice, así fue como el estado “Prepare for Submission” de la sesión anterior pasó de ser una nota al pie a ser un bloqueante.
Llevarlo hasta ahí requería un nombre para mostrar, una descripción de menos de 45 caracteres, y una captura de pantalla para revisión. La descripción fue fácil, una sola oración sacada directamente del texto de Settings de la propia app. La captura de pantalla no lo fue.
Una captura que ya había demostrado funcionar, rechazada de todas formas
Reutilicé una captura de un issue anterior, ya subida con éxito al propio listado de App Store de la app. El mismo archivo, las mismas dimensiones en píxeles, sin canal alfa, todo lo que pide la propia especificación de capturas de Apple. El campo de captura del IAP la rechazó tres veces con “the dimensions of one or more screenshots are wrong.”
Comparé los metadatos del archivo contra un archivo que App Store Connect ya había aceptado en otra parte. Idénticos. No era un archivo defectuoso.
Resulta que el campo de captura de revisión del IAP quiere un tamaño completamente distinto al del listado a nivel de app: las dimensiones antiguas de 6.5 pulgadas (1242x2688), no las de 6.9 pulgadas que la vitrina actual de App Store ahora prefiere. Nada en la documentación de Apple dice esto. Solo lo descubrí achicando la misma imagen y probando de nuevo.
Adjuntar el IAP pasó por la puerta equivocada dos veces
Una vez que el IAP en sí estaba listo, traté de adjuntarlo al nuevo build desde la propia página del IAP, ya que ese es el flujo que describe la documentación de Apple. Se quedó atascado en un diálogo que solo decía “add an app version,” sin ningún control en ningún lado para en verdad agregar una.
El camino real era en la dirección opuesta: la página de la versión de la app tiene su propia sección de In-App Purchases and Subscriptions, con un control para seleccionar qué IAPs la acompañan. Nada en la propia documentación de Apple menciona que este flujo inverso existe.
Lo que le diría a mi yo del pasado
La propia documentación de Apple sobre estos temas describe el mecanismo pero no siempre la realidad de la interfaz. Cuando algo oficial dice “any of the screenshot specifications your app supports” y la interfaz no está de acuerdo, confía en la interfaz, y compruébalo probando un segundo tamaño en vez de buscar una respuesta escrita que tal vez no exista.
La app está de nuevo en revisión ahora, esta vez con un flujo de compra que los revisores realmente pueden completar.
Lecturas relacionadas
Lanzar Deep Cut Atlas: qué se rompió durante mi primer envío a la App Store
Un consumible que debía ser no consumible, un ID de producto que nunca se puede reutilizar, un archivo que en silencio no se reconstruyó, y un cambio de nombre con una mecha de dos semanas.
Repaso de metadatos ASO, y la suposición sobre el tamaño de las capturas que resultó equivocada
Una descripción que sonaba a relleno generado por IA, una IAP todavía atascada en Prepare for Submission, y una nota de la base de conocimiento de hace tres semanas que convirtió un solo dato erróneo en una regla.
Qué se puede cambiar gratis en un listado activo de App Store
Un banner que casi nadie lee, dos subtítulos traducidos que arrastraban la misma frase que hizo rechazar el listado en inglés, y un aumento de versión que no es gratis aunque el código no cambie.