Parte: 11 — Móvil, consolas y plataformas · Fuente: Documentación de Godot 4 (Exporting for Android) · developer.android.com ⏱️ Duración estimada: 90 min · Nivel: Intermedio
Exportar a Android es el primer salto de "corre en mi PC" a "corre en un teléfono real", y tiene más piezas de las que parece: plantillas de exportación, el Android SDK y un JDK, una keystore para firmar, y la decisión entre APK y AAB. Sin firma válida, Android se niega a instalar el paquete; sin las plantillas, Godot no puede construirlo.
En esta clase configuramos el entorno de exportación de Android en Godot 4, generamos una keystore de debug y otra de release con keytool, exportamos un APK firmado y lo instalamos en un dispositivo por adb. Entenderás cuándo usar APK (pruebas e instalación directa) y cuándo AAB (publicación en Google Play), y por qué la firma de release debe guardarse con cuidado.
Al finalizar, el alumno podrá:
keytool.adb.| # | Tema | Por qué importa |
|---|---|---|
| 1 | Plantillas de exportación | Sin ellas Godot no genera el build. |
| 2 | Android SDK y JDK | Herramientas que compilan el paquete. |
| 3 | Keystore de debug | Firma automática para pruebas locales. |
| 4 | Keystore de release | Identidad estable para publicar. |
| 5 | Firma con apksigner |
Valida que el APK no fue alterado. |
| 6 | APK vs AAB | Instalación directa vs publicación en Play. |
| 7 | Gradle build | Build personalizado con plugins nativos. |
| 8 | Instalación con adb |
Probar en hardware real y ver logs. |
keytool y para el build de Gradle..keystore/.jks con la clave privada que firma la app. Clave: define la identidad de tu app; si la pierdes no puedes actualizar en Play.apksigner: herramienta del SDK que firma y verifica APKs. Clave: comprueba integridad del paquete.Necesitas Godot 4 (versión estándar; para builds con plugins nativos también sirve), el Android SDK con las command-line tools, un JDK 17 (OpenJDK) y un dispositivo Android con Depuración USB activada en Opciones de desarrollador. La forma más simple de obtener el SDK es instalar Android Studio, que trae SDK, plataformas y adb. Godot necesita las rutas del SDK y del keytool/JDK en Editor → Editor Settings → Export → Android.
Sigue la guía oficial de Godot para Android en https://docs.godotengine.org/en/stable/tutorials/export/exporting_for_android.html y la referencia de adb en https://developer.android.com/tools/adb. Ten a mano una terminal donde adb y keytool estén en el PATH.
Configuraremos el export de Android, crearemos una keystore, exportaremos un APK firmado y lo instalaremos por adb.
Instala las plantillas: en Godot ve a Editor → Manage Export Templates → Download and Install. Deben coincidir con tu versión exacta del editor.
Configura rutas en Editor → Editor Settings → Export → Android: indica Android SDK Path (carpeta del SDK) y verifica Java SDK Path si Godot no lo detecta. Pulsa el botón de comprobación; debe reportar OK.
Genera una keystore de debug (una sola vez) con keytool:
keytool -keyalg RSA -genkeypair -alias androiddebugkey \
-keypass android -keystore debug.keystore -storepass android \
-dname "CN=Android Debug,O=Android,C=US" -validity 9999
En Editor Settings → Export → Android apunta Debug Keystore a ese debug.keystore (user/password androiddebugkey/android). Así las exportaciones de debug quedan firmadas automáticamente.
Genera una keystore de release (guárdala fuera del repo y respáldala):
keytool -keyalg RSA -genkeypair -alias mijuego \
-keystore release.keystore -storepass CAMBIA_ESTO \
-keypass CAMBIA_ESTO -validity 9999 \
-dname "CN=Mi Estudio,O=Mi Estudio,C=CL"
Crea el preset de exportación: Project → Export → Add → Android. En la sección Keystore, para Release indica el release.keystore, el alias mijuego y las contraseñas. Marca el formato: APK para instalar directo, AAB para Google Play.
Exporta el APK: en el diálogo de Export pulsa Export Project…, elige salida mijuego.apk, deja Export With Debug desmarcado para una build de release firmada con tu keystore.
Conecta el teléfono, verifica que adb lo ve y instálalo:
adb devices
adb install -r mijuego.apk
adb logcat -s godot # ver logs del juego en tiempo real
Ya tienes un APK firmado corriendo en hardware real y puedes leer sus logs por logcat.
org.tuestudio.mijuego) y reinstala; observa que se instala como app separada.adb install -r.adb logcat -s godot para capturar un print() de tu juego corriendo en el móvil.Exporta tu juego a un APK de release firmado con tu propia keystore (no la de debug), instálalo en un dispositivo Android físico por adb install -r y demuestra que arranca capturando al menos una línea de log del juego con adb logcat -s godot.
Criterio de aceptación: el APK está firmado con la keystore de release (verificable con apksigner verify --print-certs mijuego.apk), adb install -r termina con "Success", la app abre en el dispositivo y el logcat muestra salida del juego. La keystore de release queda fuera del control de versiones.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| "No export template found" | Faltan las plantillas o no coinciden con la versión. Reinstálalas desde Manage Export Templates. |
| "Invalid Android SDK path" | Ruta del SDK mal configurada. Corrígela en Editor Settings → Export → Android. |
adb: no devices/emulators found |
Falta Depuración USB o el driver. Actívala y acepta el diálogo de confianza en el teléfono. |
| "INSTALL_FAILED_UPDATE_INCOMPATIBLE" | Firma distinta a la ya instalada. Desinstala la app previa o usa la misma keystore. |
| Google Play rechaza el APK | Play exige AAB. Exporta en formato AAB para publicar. |
| App instala pero no abre | Renderer o arquitectura incompatible. Usa renderer Mobile y verifica arquitecturas (arm64) en el preset. |
❓ ¿APK o AAB? APK para probar e instalar directo (o distribuir fuera de Play). AAB es obligatorio para publicar en Google Play, que genera desde él APKs optimizados por dispositivo.
❓ ¿Qué pasa si pierdo la keystore de release? No podrás publicar actualizaciones firmadas con la misma identidad en Play. Respáldala en un lugar seguro y anota sus contraseñas; es irremplazable salvo esquemas de recuperación de Play.
❓ ¿Necesito Android Studio? No estrictamente, pero es la vía más cómoda para instalar SDK, plataformas y adb. También puedes instalar solo las command-line tools del SDK.
❓ ¿Cuándo necesito el "custom Gradle build"? Cuando integras plugins nativos de Android (por ejemplo AdMob o billing, clase 206). Activa Use Gradle Build en el preset e instala la plantilla de build de Android.
Clase 200 - Panorama de plataformas y sus restricciones