Saltar al contenido
K
ProducciónPaso a paso15 min Básico

Checklist de las dos tiendas

Al terminar: Saber exactamente qué pide Play Console y qué pide App Store Connect antes de darle a publicar.

Última lección del camino principal, y de consulta: no escribes código. La app está terminada, firmada y probada, y aquí llegas hasta el formulario de cada tienda. No se sube nada, y eso es una decisión, no una renuncia: publicar cuesta dinero, semanas de espera y decisiones que solo puede tomar quien es dueño de la app.

Lo que sí haces es construir el único fichero técnico que pide Play y dejar delante la lista de lo que cada tienda exige, separando lo que ya tienes hecho de lo que falta.

Paso 1 · El AAB, que es lo que pide Play

./gradlew :androidApp:bundleRelease
BUILD SUCCESSFUL
androidApp/build/outputs/bundle/release/androidApp-release.aab   (en torno a 8 MB)

Con la Terminal de Android Studio, en la carpeta del proyecto. Sale firmado con la clave de Producción en Android si tienes sus datos en local.properties. Un APK ya no vale para publicar una app nueva en Play. El AAB (Android App Bundle) no es una app: es el material con el que Google genera un APK distinto para cada dispositivo.

Paso 2 · Lo que ya tienes hecho

Comprueba cada línea mirando la lección que lo resolvió:

  • La app funciona en release, no solo en debug, probada en el emulador (Producción en Android).
  • La versión es la misma en los dos binarios, escrita en dos sitios que se igualan a mano: el catálogo de Gradle en Android y Config.xcconfig en iOS (Producción en Android y Producción en iOS).
  • Los símbolos se guardan por versión: mapping.txt en Android y el dSYM en iOS.
  • La app se lee entera en dos idiomas (Dos idiomas) y se puede usar con TalkBack y VoiceOver (Accesibilidad).
  • El archivo de iOS, con su manifiesto de privacidad dentro, compila sin firma.
  • Eliminar la cuenta desde dentro de la app (Eliminar la cuenta).

Paso 3 · Play Console

Play Console es la web de Google donde se gestiona una app de Android. Para usarla hay que crear una cuenta de desarrollador, que es de pago (una cuota única de registro) y pide verificar tu identidad con documentos: es lo primero que bloquea, y puede tardar. Google distingue cuentas personales (a nombre de una persona) y de organización (a nombre de una empresa, con más trámites); las exigencias de abajo cambian según cuál sea.

  • Política de privacidad en una dirección web pública. Las dos tiendas piden un enlace; ninguna acepta un fichero adjunto. Una página tuya (cualquier alojamiento gratuito sirve) con lo que la app recoge: el correo de la cuenta.
  • Prueba cerrada con 12 probadores durante 14 días seguidos, si tu cuenta de desarrollador es personal y se creó después del 13 de noviembre de 2023. (Una prueba cerrada es una versión que solo pueden instalar las personas que invitas, antes de publicarla para todo el mundo.) Es el requisito que más planes tuerce: son dos semanas de calendario, no de trabajo, y no se acelera.
  • Ficha de seguridad de los datos (Data safety). Declara lo mismo que dice el manifiesto de privacidad de iOS: se recoge el correo, para que la app funcione, no se usa para seguimiento.
  • Capturas reales, sacadas del emulador y del simulador, no maquetas.
  • Declarar que la app permite eliminar la cuenta desde dentro (ya la tienes en Ajustes).

Dos semanas de calendario no se pueden acelerar ni saltar, y no se empiezan el día antes de la fecha que querías. Quien tenga una fecha en mente debería empezar por esto y no por el código.

Paso 4 · App Store Connect

App Store Connect es la web de Apple donde se gestiona una app de iOS. Exige el Apple Developer Program (99 USD al año), la misma cuenta de pago de la que hablaba Producción en iOS, y también distingue cuentas de persona y de organización.

  • Cuenta de demostración, con correo y contraseña de prueba, en la ficha de revisión. Quien revisa abre la app, encuentra un formulario de correo y contraseña y no tiene nada más que probar: sin credenciales, la revisión termina ahí. Es la consecuencia de la decisión de Pantallas de sesión en Android: con el guardián en la raíz, no hay nada accesible sin cuenta.
  • Enlace a la política de privacidad, en la ficha y dentro de la app, en un sitio accesible.
  • Etiquetas de privacidad en la ficha, coherentes con PrivacyInfo.xcprivacy. Son dos sitios con la misma información, y si no coinciden, lo preguntan.
  • Eliminar la cuenta desde dentro de la app (ya está) y decirlo en la ficha.
  • TestFlight, que es la herramienta de Apple para repartir compilaciones de prueba a otras personas (necesita la cuenta de 99 USD). Las pruebas externas pasan por la Beta App Review, una revisión de Apple como la de la tienda, aunque más corta, y por eso conviene empezar pronto.
  • Capturas reales del simulador, con los tamaños de pantalla que pide la ficha.

Paso 5 · Lo que no es técnico

Los identificadores son globales. El identificador de la app (applicationId en Android y Bundle ID en iOS: el mismo texto, por convención) es único en cada tienda: com.sebastiannarvaez.pokedex es el que usa el curso, o el tuyo, si lo cambiaste al crear el proyecto. Una app publicada necesita un identificador propio que nadie más tenga: se cambia el applicationId en Android y el Bundle ID en iOS (BUNDLE_ID en Config.xcconfig), y se decide además el nombre que verá la gente (app_name en Android, APP_NAME en iOS).

Pokémon no es tuyo. La app es un ejercicio que consume una API pública; el nombre y las ilustraciones pertenecen a sus dueños. Publicar una app con ellos en una tienda es otra conversación, y no es técnica. Para aprender y para enseñarla en una entrevista, la app funcionando sobra.

Punto de control

  • ./gradlew :androidApp:bundleRelease produce un .aab en torno a 8 MB.
  • Puedes decir, de cada línea de las dos listas, si ya la tienes o qué falta.
  • La app tiene la opción de eliminar la cuenta, anotada en las dos listas.
  • Tu almacén de claves sigue fuera de la carpeta del proyecto.

Reto · La fecha imposible

Alguien te pide la app publicada en Play en una semana, con una cuenta personal recién creada. ¿Qué le contestas, y qué alternativa le ofreces?

Ver solución

No se puede, y el motivo no es técnico: la prueba cerrada exige 12 probadores apuntados de forma continua durante 14 días. Son dos semanas de calendario que empiezan cuando los 12 estén dentro, no cuando se suba la compilación.

Lo que sí cabe en una semana:

  1. Crear la cuenta de pago y pasar la verificación de identidad, que es lo primero que bloquea (se explicó al principio del paso 3).
  2. Subir el AAB a una prueba cerrada y empezar a contar los 14 días desde ya.
  3. Reunir los 12 probadores, que suele ser lo que más cuesta, y comprobar que están apuntados de verdad y no solo invitados.
  4. Publicar en TestFlight, si hay cuenta de Apple de 99 USD: es la vía para enseñar la app funcionando en iOS.
  5. Enseñar la app en un emulador y un simulador, que para una entrevista o una demostración es suficiente.

Y la conclusión que vale para cualquier proyecto: los requisitos de calendario se miran antes de prometer una fecha, no después. Este no se acelera con dinero ni con horas.

Comprueba lo que entendiste

5 preguntas · necesitas 4 para completar la lección

  1. 1.¿Por qué Play pide un AAB y no un APK?

  2. 2.La prueba cerrada de Play exige…

  3. 3.¿Por qué la cuenta de demostración es tan crítica en App Store Connect?

  4. 4.¿Qué exigen las dos tiendas por igual en una app que deja crear cuenta?

  5. 5.¿Por qué el curso termina en el formulario y no en la tienda?

Faltan 5 de 5