Saltar al contenido principal

Generacion del APK

APK de debug​

El APK de debug se genera automáticamente al ejecutar la aplicación desde Android Studio o mediante el wrapper de Gradle:

./gradlew assembleDebug

El artefacto se genera en:

app/build/outputs/apk/debug/app-debug.apk

El APK de debug lleva la firma de debug de Android Studio y no puede distribuirse en Google Play. Es adecuado para pruebas internas e instalación directa en dispositivos mediante adb.

APK de release​

Para generar un APK firmado apto para distribución:

1. Crear un keystore​

Si no se dispone de un keystore de firma:

keytool -genkey -v \
-keystore trainium-release-key.jks \
-alias trainium \
-keyalg RSA \
-keysize 2048 \
-validity 10000

2. Configurar la firma en build.gradle.kts​

Añadir la configuración de signingConfigs en app/build.gradle.kts:

android {
signingConfigs {
create("release") {
storeFile = file("../trainium-release-key.jks")
storePassword = System.getenv("KEYSTORE_PASSWORD")
keyAlias = "trainium"
keyPassword = System.getenv("KEY_PASSWORD")
}
}
buildTypes {
release {
isMinifyEnabled = false
signingConfig = signingConfigs.getByName("release")
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
}

Se recomienda leer las contraseñas desde variables de entorno (System.getenv) en lugar de incluirlas en texto plano en el fichero de build.

3. Generar el APK firmado​

./gradlew assembleRelease

El artefacto se genera en:

app/build/outputs/apk/release/app-release.apk

Minificacion y ofuscacion​

En la configuración actual, isMinifyEnabled = false en el bloque release. Esto significa que el código no se minifica ni se ofusca con R8/ProGuard. Para una distribución en producción se recomienda habilitar la minificación:

release {
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}

Al habilitar la minificación con Supabase y kotlinx.serialization es necesario añadir las reglas de ProGuard correspondientes para preservar las clases serializables. El fichero proguard-rules.pro incluido en el proyecto está vacío en esta versión.

Instalacion via adb​

Para instalar el APK directamente en un dispositivo conectado:

adb install app/build/outputs/apk/debug/app-debug.apk

Si hay varios dispositivos conectados, especificar el destino:

adb -s <device-serial> install app-debug.apk

Para obtener la lista de dispositivos conectados:

adb devices

Requisitos del dispositivo destino​

RequisitoValor
API mínima24 (Android 7.0 Nougat)
API objetivo36
Arquitecturaarm64-v8a, armeabi-v7a, x86_64 (según el dispositivo)
Permisos en instalaciónINTERNET, ACCESS_NETWORK_STATE
Conexión a internetObligatoria para el funcionamiento de la aplicación