Saltar al contenido principal
Móvil Capacitor Android

ADB Install APK: Comandos, Flags y Solución de Problemas

Instala un APK con adb install path/to/app.apk. Activa el depuración USB, verifica con adb devices, usa las flags -r -d -g -t, instala por Wi-Fi, split APKs, lanza, desinstala y corrige mensajes de error comunes.

Comando ADB Install APK, flags y solución de problemas Capgo blog

Respuesta rápida: Conecta un teléfono con depuración USB activada y confírmalo con adb devices, luego ejecuta adb install path/to/app.apk. Para actualizar sobre una instalación existente, usa adb install -r path/to/app.apk.

adb install path/to/app.apk
adb install -r path/to/app.apk

Pasos mínimos:

  1. Instalar Platform Tools de SDK y asegúrate de que adb esté en tu PATH.
  2. En el teléfono, activa Opciones de desarrollador y depuración USB.
  3. Conecta el USB, desbloquea el teléfono y acepta Permitir depuración USB.
  4. Ejecuta adb devices y confirma que aparece el serial device, no unauthorized.
  5. Ejecuta adb install path/to/app.apk.

Si publicas builds de Android desde Capacitor o Ionic, este flujo es cómo instalar un APK nuevo en el hardware sin esperar a Play Console. Para el despliegue en la tienda después de probar, consulta despliegues escalonados en Google Play.

Tabla de contenidos

Instalar Platform Tools y verificar adb

No necesitas la descarga completa de Android Studio para adb install. Necesitas Herramientas de la plataforma de Google.

  1. Descarga Platform Tools para tu sistema operativo.
  2. Descomprime en una carpeta fija.
  3. Añade esa carpeta a tu PATH.

Verificación:

adb version

En el dispositivo, activa la depuración USB como se describe en la guía de opciones de desarrollador de Android. Algunas skins de OEM (Xiaomi MIUI es un caso común) también requieren Instalar vía USB o similar en la configuración de desarrollador.

Usa un cable de datos. Los cables solo de carga producen adb devices listas y perder tiempo.

Flujo básico de adb install apk

Comprueba siempre la conexión antes de instalar.

adb devices

Salida esperada correcta:

List of devices attached
XXXXXXXX    device

Instalación:

adb install path/to/your-app.apk

Cita las rutas que contienen espacios. Desde el directorio del APK:

adb install app-debug.apk

Una ejecución exitosa suele imprimir Realizando instalación en streaming y Éxito. Internamente, adb install envía el archivo a /data/local/tmp, ejecuta pm install, y elimina el archivo temporal. Es más simple que el proceso manual adb push más una shell pm install para pruebas diarias.

Para configurar el entorno de Capacitor más allá de ADB, consulta configuración de Android para apps de Capacitor.

Flags de adb install

Flag Significado Cuándo usarlo
-r Reemplaza la app existente, conserva los datos cuando sea posible Debug rebuilds, same package name
-d Permitir downgrade solo en apps depurables Revertir un build de debug sobre un build de debug más nuevo
-g Conceder todos los permisos de runtime al instalar QA más rápido cuando los permisos bloquean el lanzamiento
-t Permitir APKs solo de prueba Builds testOnly internos desde CI

Combinaciones comunes:

adb install -r app-debug.apk
adb install -r -g app-debug.apk
adb install -r -d older-build.apk
adb install -r -t internal-test.apk

-r es el hábito por defecto para el desarrollo iterativo. Sin él, Android a menudo devuelve INSTALL_FAILED_ALREADY_EXISTS cuando el paquete ya está presente.

-d permite downgrades solo cuando el paquete instalado es depurable. No hace downgrade de un release no depurable de Play. Sin -d, un versionCode dispara INSTALL_FAILED_VERSION_DOWNGRADE.

-g omite el diálogo de permisos al instalar. No elimina la necesidad de probar los flujos de permisos en una instalación limpia.

-t es obligatorio cuando el manifiesto establece android:testOnly="true". Sin él, obtendrás INSTALL_FAILED_TEST_ONLY.

Las compilaciones de release deben firmarse de forma consistente. Si generas una nueva clave de subida, el Generador de keystore para Android huellas de documentos y salida PKCS#12. Firmar con una clave distinta a la de la app instalada produce INSTALL_FAILED_UPDATE_INCOMPATIBLE.

Varios dispositivos con -s

Cuando hay más de un dispositivo o emulador conectado, adb install puede fallar con más de un dispositivo/emulador. Lista de series:

adb devices

Dirígete a una serie específica con -s:

adb -s SERIAL install -r app-debug.apk

Reemplazar SERIAL con el valor de la primera columna de adb devices.

Instalar APK por Wi-Fi

Android 11 y posterior (depuración inalámbrica):

Coloca el teléfono y la computadora en la misma red Wi-Fi.

  1. En el teléfono: Ajustes → Opciones de desarrollador → Depuración inalámbrica → Emparejar dispositivo con código de code. Anota la IP de emparejamiento, el puerto y el code de seis dígitos.
  2. En la computadora, realiza el emparejamiento:
adb pair IP:PAIRING_PORT

Enter the pairing code when prompted.

  1. Conéctate al puerto de depuración mostrado en la pantalla de Depuración inalámbrica:
adb connect IP:DEBUG_PORT
adb devices
  1. Desconecta el USB si aparecen dispositivos tanto por USB como por Wi-Fi en adb devices, o especifica la red Wi-Fi explícitamente:
adb -s IP:DEBUG_PORT install -r app-debug.apk

Android antiguo (USB primero):

adb tcpip 5555
adb connect PHONE_IP:5555

Desconecta el USB después de adb devices muestre el endpoint TCP. El firewall y el aislamiento de red pueden bloquear ADB por Wi-Fi en LAN corporativas.

APKs divididas con install-multiple

Los App Bundles de Play Store se descomprimen en un APK base más splits de configuración (densidad, ABI, idioma) y, a veces, módulos de funciones en tiempo de instalación. Instala el APK base y cada split que coincida con el dispositivo objetivo en un solo comando:

adb install-multiple -r base.apk split_config.xxhdpi.apk split_config.arm64_v8a.apk

Pasa solo los splits de la misma extracción de bundle que encajen con el dispositivo conectado. Un split faltante o incorrecto causa INSTALL_FAILED_INVALID_APK o instalaciones incompletas.

Para hacer sideload desde un .apks archivo, bundletool install-apks --apks=app.apks suele ser más sencillo que listar los archivos manualmente.

Eso es diferente de APKs divididas por ABI cuando Gradle compila APKs independientes por arquitectura (app-armeabi-v7a-debug.apk, app-arm64-v8a-debug.apk, etc.). Cada uno de esos archivos es una app completa. Elige el que coincida con la CPU del dispositivo y ejecuta adb install -r en ese único archivo. No pases todos los APKs de la carpeta de salida a install-multiple.

Iniciar la app tras la instalación

Actividad de launcher conocida (desde AndroidManifest.xml):

adb shell am start -n com.example.app/.MainActivity

Prueba rápida de humo cuando solo conoces el nombre del paquete:

adb shell monkey -p com.example.app -c android.intent.category.LAUNCHER 1

monkey dispara una intención de lanzamiento. No es una prueba de UI completa, pero confirma que la app se abre tras la instalación.

Ver logs:

adb logcat

Desinstalar con adb

Eliminar por nombre de paquete (no por ruta del APK):

adb uninstall com.example.app

Esto elimina la app y sus datos. Úsalo para pruebas de primer lanzamiento y antes de corregir un error de firma.

Para eliminar la app pero dejar los datos de usuario en el dispositivo:

adb uninstall -k com.example.app

-k puede hacer que la siguiente instalación reutilice preferencias o bases de datos antiguas, así que omítelo cuando necesites una instalación limpia real. Usa adb install -r cuando solo necesites un ciclo de actualización más rápido sobre una instalación existente.

Ejemplo de Capacitor

Ciclo típico de Capacitor:

npx cap sync android

Compila el APK de depuración y luego:

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

Firma los APK de release con tu subir clave antes de subir a Play. Con Play App Signing, las descargas de la tienda usan el certificado de firma de la app, que puede diferir de tu certificado de subida. Solo puedes actualizar vía ADB si el certificado del APK coincide con la app instalada y se cumplen las reglas normales de actualización. Compara los certificados de firma antes de desinstalar. Si difieren, prueba con un APK de una pista de pruebas interna (firmado como el build de Play) en lugar de un archivo firmado localmente. Desinstalar el build de Play elimina los datos de la app.

Solución de errores de instalación

Error o síntoma Causa probable Qué probar
unauthorized en adb devices Prompt RSA no aceptado Desbloquea el teléfono, aprueba el depuración USB, adb kill-server luego adb start-server
no devices/emulators found Cable, driver o depuración desactivada Cable nuevo, activar depuración USB, controlador USB de Google para Windows si es necesario
INSTALL_FAILED_ALREADY_EXISTS Mismo paquete sin -r adb install -r app.apk o adb uninstall primero
INSTALL_FAILED_UPDATE_INCOMPATIBLE Clave de firma diferente Desinstalar la app anterior o instalar un build firmado con la misma clave
INSTALL_FAILED_VERSION_DOWNGRADE versionCode más bajo en una app no depurable Desinstalar, aumentar la versión o usar -d solo en paquetes depurables
INSTALL_FAILED_INSUFFICIENT_STORAGE Espacio en disco insuficiente Liberar espacio en el dispositivo, eliminar apps no usadas
INSTALL_FAILED_TEST_ONLY APK testOnly adb install -t app.apk solo para builds de prueba confiables
INSTALL_FAILED_INVALID_APK Conjunto de splits corrupto o incorrecto Recompila el APK y pasa todos los splits a install-multiple
more than one device/emulator Varios dispositivos conectados adb -s SERIAL install ...

dispositivo no autorizado

adb devices muestra:

XXXXXXXX    unauthorized

Corrige en el teléfono, no solo en la terminal:

  1. Vuelve a conectar el USB y desbloquea la pantalla.
  2. Toca Permitir en ¿Permitir depuración USB?
  3. Verificar Permitir siempre desde este equipo para tu máquina de desarrollo.
  4. Reinicia ADB:
adb kill-server
adb start-server
adb devices

no se encontraron dispositivos/emuladores

  • Confirma que la depuración USB está activada (ver opciones de desarrollador).
  • Prueba con otro puerto USB y cable.
  • En Windows, instala el controlador USB de Google desde SDK Manager si falta el controlador OEM.
  • Para emuladores, inicia el AVD antes de adb install.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

La app instalada fue firmada con un certificado diferente al del APK que estás instalando. Es común al mezclar debug y release, cuando Play App Signing usa una clave distinta a la del APK de subida, o tras una rotación de claves.

Primero, confirma que estás instalando un build firmado con el mismo certificado que la app en el dispositivo. Usa un APK de la pista de pruebas de Play cuando necesites coincidir con una instalación de producción.

Si debes reemplazar la instalación, desinstalar elimina los datos de la app. Haz una copia de seguridad de lo que necesites y luego:

adb uninstall com.example.app
adb install app.apk

INSTALL_FAILED_VERSION_DOWNGRADE

El APK versionCode es inferior a la versión instalada.

Solo para paquetes depurables, pruebas de rollback intencional:

adb install -r -d older.apk

En builds de release desde Play, desinstala primero o aumenta versionCode en lugar de usar -d.

INSTALL_FAILED_INSUFFICIENT_STORAGE

El dispositivo no puede asignar espacio para el paquete. Elimina apps o medios y reintenta. Los APK muy grandes en teléfonos de prueba con poca memoria suelen provocar esto.

INSTALL_FAILED_TEST_ONLY

El build está marcado solo para pruebas. Para tus propios artefactos de CI:

adb install -t -r app.apk

No lo uses -t para instalar APKs no confiables manualmente.


Para equipos de Capacitor que corrigen JavaScript, estilos y configuración sin esperar la revisión de la tienda, Capgo soporta actualizaciones en vivo firmadas, canales y reversión junto con las versiones nativas de la tienda.

Live updates para apps Capacitor

Cuando un bug de la capa web está en producción, publica el fix a través de Capgo en lugar de esperar días a la aprobación de la app store. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen el flujo de revisión habitual.

Lo último de nuestro blog

Capgo te da la información clave que necesitas para crear una app móvil realmente profesional.