Instalar Android App Bundle en el dispositivo

113

Construí mi proyecto usando el nuevo formato de paquete de aplicaciones de Android. Con los archivos APK, puedo descargar el APK en mi dispositivo, abrirlo e instalar inmediatamente la aplicación. Descargué mi aplicación como un paquete (formato .aab) y mi Nexus 5X con Android 8.1 no puede abrir el archivo. ¿Hay alguna forma de instalar AAB en dispositivos de la misma manera conveniente que los APK?

prfarlow
fuente
2
Parece que se necesitan algunos pasos más que un simple apk: developer.android.com/guide/app-bundle/test .
Mike M.

Respuestas:

108

Respuesta corta:

No directamente.

Respuesta más larga:

Android App Bundles es un formato de publicación. Los dispositivos Android requieren .apkarchivos para instalar aplicaciones.

PlayStore o cualquier otra fuente desde la que esté instalando necesita extraer apks del paquete, firmar cada uno y luego instalarlos específicos para el dispositivo de destino.

La conversión de .aab a .apk se realiza mediante bundletool .

Puede utilizar el uso compartido interno de aplicaciones para cargar una compilación depurable de su aplicación en Play Store y compartirla con los evaluadores.

surfista
fuente
¿En qué caso
usaríamos la
Lo haría principalmente para pruebas locales.
keyboardsurfer
3
El lanzamiento (en lugar de los archivos fuente) de bundletool está aquí: github.com/google/bundletool/releases
Kari
Actualmente es una respuesta incorrecta, vea otras respuestas para crear un apksarchivo.
CoolMind
1
@ericn La "publicación" inicial de una aplicación está pasando por el proceso habitual. Las revisiones no deberían bloquear ninguna aplicación interna compartida que hagas posteriormente.
keyboardsurfer
52

Instalando el aab directamente desde el dispositivo, no pude encontrar una manera de hacerlo.

Pero hay una manera de instalarlo a través de su línea de comando usando la siguiente documentación Puede instalar apk en un dispositivo a través de BundleTool

Según el comentario de "@Albert Vila Calvo", señaló que para instalar bundletools usando HomeBrew, use brew install bundletool

Ahora puede instalar extraer apks del archivo aab e instalarlo en un dispositivo

Extrayendo archivos apk desde el siguiente comando

java -jar bundletool-all-0.3.3.jar build-apks --bundle = bundle.aab --output = app.apks --ks = my-release-key.keystore --ks-key-alias = alias - -ks-pass = pass: contraseña

Argumentos:

  • --bundle -> Archivo .aab de paquete de Android
  • --output -> Destino y nombre de archivo para el archivo apk generado
  • --ks -> Archivo de almacén de claves utilizado para generar el paquete de Android
  • --ks-key-alias -> Alias ​​para el archivo de almacén de claves
  • --ks-pass -> Contraseña para el archivo de alias (tenga en cuenta el prefijo 'pass' antes del valor de la contraseña)

Entonces tendrás un archivo con extensión .apks Así que ahora necesitas instalarlo en un dispositivo

java -jar bundletool-all-0.6.0.jar install-apks --adb = / android-sdk / platform-tools / adb --apks = app.apks

Argumentos:

  • --adb -> Ruta al archivo adb
  • --apks -> Es necesario instalar el archivo Apks
Omar HossamEldin
fuente
25
Si utiliza Mac puede instalar Bundletool con Homebrew: brew install bundletool. Luego simplemente ejecute los comandos como este:bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
Albert Vila Calvo
3
--ks-pass = pass: contraseña especifica la contraseña para el almacén de claves. Para especificar la contraseña para el archivo de claves, use --key-pass = pass: contraseña
smitty1
Estoy enfrentando el mismo problema, seguí los pasos que describió, sin embargo, cuando la aplicación está instalada en mi dispositivo Android, no puedo abrirla (abre y cierra automáticamente)
aName
¡Gracias! --key-pass=pass:... se requiere, pero extrañamente una contraseña es incorrecta, así que tengo que escribirla manualmente. Después de ... install-apks --adb=...escribir: 'Los APK se han extraído en el directorio: ...', pero esa carpeta no existe y no se instala en el dispositivo.
CoolMind
EJEMPLO: C:\Users\Aterr\Desktop\hack>java -jar "C:\Users\Aterr\Desktop\hack\bundletool-all-0.10.3.jar" install-apks --adb="C:\Users\Aterr\AppData\Local\Android\Sdk\platform-tools\adb.exe" --apks="C:\Users\Aterr\Desktop\hack\extractedapks.apks"
Choletski
24

No se puede instalar paquete de aplicación [NAME].aabdirectamente al dispositivo Android, ya que es la publicación de formato, pero no hay manera de extraer la necesaria apkdesde bundlee instalarlo en su dispositivo, el proceso es el siguiente

  1. Descarga bundletool desde aquí
  2. ejecuta esto en tu terminal,
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. El último paso generará un archivo llamado como out_bundle_archive_set.apks, simplemente cámbiele el nombre out_bundle_archive_set.zipy extraiga el archivo zip, salte a la carpeta out_bundle_archive_set > standalones, donde verá una lista de todos los apks

Ahí va la referencia de los desarrolladores de Android para el enlace de herramientas de paquete

referencia de desarrollador de Android

Ali Tamoor
fuente
Requiere una clave de firma y contraseñas, consulte stackoverflow.com/a/52704544/2914140 y developer.android.com/studio/command-line/bundletool .
CoolMind
@CoolMind, la clave de firma y las contraseñas son cuando desea crear el conjunto de apk firmado fuera del paquete y desea implementar apk en el dispositivo, verifique la respuesta actualizada
Ali Tamoor
El tercer paso es realmente necesario, muchas gracias.
Dhiren
no hay carpetas con nombres independientes, sino divisiones con nombres
Gopal Singh Sirvi
16

Para Mac:

brew install bundletool
bundletool build-apks --bundle=./app.aab --output=./app.apks
bundletool install-apks --apks=app.apks
Erti-Chris Eelmaa
fuente
Simplemente hice el trabajo sin ningún problema. ¡Salvó el día!
asozcan
después de que el tercer terminal de comando mostrara una ruta para la aplicación, pero la carpeta no está disponible
Furquan
1
@Furquan, esa ruta que se muestra es la ruta en su dispositivo conectado. El comando instala el apk en su dispositivo.
Bijoy Thangaraj
6

Si desea instalar apk desde su aab en su dispositivo con fines de prueba, debe editar la configuración antes de ejecutarla en el dispositivo conectado.

  1. Ir a Editar configuraciones
    ingrese la descripción de la imagen aquí
  2. Seleccione el menú desplegable Implementar y cámbielo de "APK predeterminado" a "APK del paquete de aplicaciones".ingrese la descripción de la imagen aquí
  3. Aplique los cambios y luego ejecútelo en el dispositivo conectado. El tiempo de construcción aumentará después de realizar este cambio.

Esto instalará un apk directamente en el dispositivo conectado desde el aab.

Kartikeya_M
fuente
1
Esto me ayudó a replicar un error que aparece solo en la versión de lanzamiento. Resulta que el error aparece cuando se instala desde AAB. Muchas gracias.
Cerlin
Solo para aclarar, supongo que las instrucciones y las capturas de pantalla son de Android Studio. [Estoy usando Xamarin, no usando Android Studio. Me doy cuenta de que la mayoría de los desarrolladores están usando Android Studio.]
ToolmakerSteve
Sí, las instrucciones y capturas de pantalla son de Android Studio 3.6.3.
Kartikeya_M
0

No, si está depurando una aplicación sin otros usuarios, use el menú Build> Build APK (s) en Android Studio o ejecútelo en su dispositivo / emulador, el apk de la versión de depuración se instalará automáticamente. Si está depurando una aplicación con otros, use el menú Compilar> Generar APK firmado ... Si desea publicar la versión beta, utilice Google Play Store. Tu (s) APK (s) estarán en carpetas app\build\outputs\apk\debugy app\release.

Gaspar
fuente
0

Utilice (en Linux): cd android ./gradlew assemblyRelease | assemblyDebug

Se genera un APK sin firmar para cada caso (para depuración o prueba)

NOTA: En Windows, reemplace el ejecutable de gradle por gradlew.bat

Eddie Ruiz
fuente