Compilar y publicar tu app Flutter significa generar un archivo APK o App Bundle que Google Play Store puede distribuir a millones de usuarios en México y el mundo.
Diferencia entre APK y App Bundle
Antes de compilar, necesitas saber qué archivo vas a generar.
APK (Android Package) es el formato clásico. Puedes instalarlo directamente en cualquier dispositivo Android sin pasar por la tienda. Es útil para pruebas internas.
App Bundle (.aab) es el formato moderno que Google recomienda. Google Play optimiza automáticamente el tamaño del archivo para cada dispositivo. Hoy en día, Google Play requiere App Bundle para nuevas apps.
| Formato | Uso principal | ¿Google Play lo acepta? |
|---|---|---|
.apk |
Pruebas y distribución directa | Solo para apps existentes |
.aab |
Distribución oficial en tienda | Sí, es el estándar actual |
Preparar tu app antes de compilar
Antes de generar el archivo final, debes configurar tres cosas importantes.
1. Cambiar el nombre y paquete de la app
Abre el archivo android/app/build.gradle. Busca la línea applicationId y escribe el identificador único de tu app.
android {
defaultConfig {
applicationId "com.tuempresa.nombreapp"
minSdk 21
targetSdk 34
versionCode 1
versionName "1.0"
}
}
El applicationId debe ser único en todo Google Play. Usa el formato com.tuempresa.app. Por ejemplo, si trabajas para una taquería en Monterrey, podrías usar com.taqueriaelgordo.menu.
2. Cambiar el nombre visible de la app
Abre android/app/src/main/AndroidManifest.xml. Cambia el atributo android:label:
<application
android:label="Taquería El Gordo"
android:icon="@mipmap/ic_launcher">
Este nombre es lo que el usuario ve en su pantalla de inicio.
3. Agregar un ícono de app
El ícono predeterminado de Flutter es el logo de Flutter. Cámbialo antes de publicar.
Usa el paquete flutter_launcher_icons para automatizar este proceso. Agrega en pubspec.yaml:
dev_dependencies:
flutter_launcher_icons: ^0.13.1
flutter_icons:
android: true
ios: false
image_path: "assets/icono.png"
Luego ejecuta:
flutter pub get
flutter pub run flutter_launcher_icons
Tu ícono se aplica automáticamente en todas las resoluciones.
Generar el keystore (firma digital)
El keystore es un archivo que firma digitalmente tu app. Google Play requiere que cada app tenga una firma única antes de publicarla.
⚠️ Guarda este archivo en un lugar seguro. Si lo pierdes, no podrás actualizar tu app en la tienda.
Ejecuta este comando en tu terminal (ajusta los datos a los tuyos):
keytool -genkey -v -keystore ~/mi-app-key.jks \
-keyalg RSA -keysize 2048 -validity 10000 \
-alias mi-app
El terminal te pedirá una contraseña y datos como tu nombre y organización. Anótalos en un lugar seguro.
Configurar la firma en el proyecto
Crea el archivo android/key.properties con esta información:
storePassword=tu_contraseña
keyPassword=tu_contraseña
keyAlias=mi-app
storeFile=/Users/tu_usuario/mi-app-key.jks
Luego, en android/app/build.gradle, agrega la referencia:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
Compilar el App Bundle final
Con todo configurado, ejecuta este comando en la raíz de tu proyecto:
flutter build appbundle --release
Flutter compila el proyecto en modo release. El archivo resultante aparece en:
build/app/outputs/bundle/release/app-release.aab
Ese archivo .aab es el que subes a Google Play Store.
Compilar un APK para pruebas
Si solo quieres probar la app en tu celular o compartirla con colegas en tu empresa, usa:
flutter build apk --release
El APK aparece en build/app/outputs/flutter-apk/app-release.apk. Puedes enviarlo por WhatsApp o correo para instalación directa.
Subir tu app a Google Play Store
Paso 1: Crear una cuenta de desarrollador
Necesitas una cuenta en play.google.com/console. El registro tiene un costo único de $625 (aproximadamente, el equivalente a 25 USD según el tipo de cambio del día). Es un pago de por vida, no recurrente.
Paso 2: Crear la ficha de la app
En la consola de Google Play, haz clic en "Crear app". Llena la información básica:
- Nombre de la app: El nombre público que ven los usuarios.
- Descripción corta: Máximo 80 caracteres.
- Descripción completa: Máximo 4,000 caracteres. Explica qué hace tu app.
- Capturas de pantalla: Google Play requiere al menos 2 capturas de pantalla del dispositivo.
- Ícono de alta resolución: 512 × 512 píxeles en formato PNG.
- Gráfico de funciones: Imagen de 1,024 × 500 píxeles (banner opcional pero recomendado).
Paso 3: Clasificación de contenido
Google requiere que respondas un cuestionario sobre el contenido de tu app. Según tus respuestas, asigna una clasificación de edad (como la del PEGI o ESRB). Una app de catálogo de productos —como el menú digital de una taquería— normalmente recibe clasificación "Para todos".
Paso 4: Subir el App Bundle
En el menú lateral, ve a Versión de producción → Crear nueva versión. Sube tu archivo app-release.aab. Agrega notas de la versión, por ejemplo: "Primera versión disponible para usuarios en México."
Paso 5: Revisión de Google
Google revisa cada app antes de publicarla. El proceso toma entre 1 y 7 días hábiles. Recibes una notificación por correo cuando la app está disponible.
Errores comunes al publicar
Error 1: Subir un APK en lugar de un App Bundle.
Google Play ya no acepta APKs para nuevas apps. Siempre usa flutter build appbundle --release.
Error 2: Perder el archivo keystore.
Si pierdes el .jks y la contraseña, no puedes publicar actualizaciones. Guarda una copia en Google Drive, Dropbox o un disco externo. Muchos desarrolladores en México pierden el acceso a sus apps publicadas por este motivo.
Error 3: Usar el applicationId de la app de ejemplo.
Flutter crea proyectos con applicationId "com.example.nombre". Google Play rechaza cualquier app con com.example en el identificador. Cámbialo siempre antes de compilar.
Error 4: Olvidar cambiar el ícono. Publicar con el ícono predeterminado de Flutter da una mala imagen profesional. Usuarios de apps como las de Liverpool o FEMSA esperan un ícono cuidado. Dedica tiempo a este detalle.
Error 5: No probar el APK de release antes de subir. El modo debug y el modo release pueden comportarse diferente. Instala el APK release en tu dispositivo físico y prueba todas las funciones antes de subir el bundle a la tienda.
Lo que aprendiste en este curso
A lo largo de estas nueve lecciones construiste una base sólida en Flutter y Dart:
- Configuraste tu entorno de desarrollo desde cero.
- Aprendiste la sintaxis esencial de Dart: variables, funciones, clases y
async/await. - Entendiste la diferencia entre widgets
StatelessyStateful. - Construiste interfaces con
Column,Row,ListViewyStack. - Navegaste entre pantallas con
Navigator. - Manejaste el estado con
setStateyProvider. - Consumiste una API REST con el paquete
httpy mostraste datos reales conFutureBuilder. - Compilaste y preparaste tu app para Google Play Store.
Próximos pasos recomendados
Flutter es un ecosistema amplio. Estos son los temas que debes explorar después:
- Firebase: Agrega base de datos en tiempo real, autenticación y notificaciones push a tu app.
- Riverpod: Un sistema de manejo de estado más robusto que Provider, muy usado en proyectos profesionales en México.
- Flutter para iOS: Con una Mac puedes generar un
.ipay publicar en el App Store de Apple. - Pruebas automatizadas: Aprende
flutter testpara escribir pruebas unitarias y de widgets. - CI/CD con GitHub Actions: Automatiza la compilación y publicación de tu app cada vez que haces un commit.
El mercado de desarrollo móvil en México sigue creciendo. Empresas como Mercado Libre, Rappi y startups de fintech buscan constantemente desarrolladores Flutter con experiencia práctica. Con lo aprendido en este curso ya tienes las bases para construir, iterar y publicar apps reales.