Cómo realizar pruebas locales de instalaciones de módulos

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

La biblioteca de Play Core te permite probar de forma local la capacidad de tu app para hacer lo siguiente, sin necesidad de conectarte a Play Store:

En esta página, se describe cómo implementar los APK divididos de tu app en el dispositivo de prueba para que Play Core use automáticamente esos APK a fin de simular la solicitud, descarga e instalación de módulos desde Play Store.

Si bien no necesitas realizar ningún cambio en la lógica de tu app, deberás cumplir con los siguientes requisitos:

Cómo compilar un conjunto de APK

Si aún no lo hiciste, compila los APK divididos de tu app de la siguiente manera:

  1. Crea un paquete de aplicación para tu app con uno de los siguientes métodos:
  2. Usa bundletool a fin de generar un conjunto de APK para todas las configuraciones del dispositivo con el siguiente comando:

    bundletool build-apks --local-testing
      --bundle my_app.aab
      --output my_app.apks
    

La marca --local-testing incluye metadatos en los manifiestos de tus APK que permiten que la biblioteca de Play Core sepa usar los APK de división local para probar la instalación de los módulos de funciones sin necesidad de conectarse a Play Store.

Cómo implementar tu app en el dispositivo

Después de compilar un conjunto de APK con la marca --local-testing, usa bundletool para instalar la versión base de tu app y transferir los APK adicionales al almacenamiento local de tu dispositivo. Puedes realizar ambas acciones con el siguiente comando:

bundletool install-apks --apks my_app.apks

Ahora, cuando inicias tu app y completas el flujo de usuarios para descargar e instalar un módulo de funciones, la biblioteca de Play Core usa los APK que bundletool transfirió al almacenamiento local del dispositivo.

Cómo simular un error de red

Para simular las instalaciones de módulos desde Play Store, la biblioteca de Play Core usa una alternativa a SplitInstallManager, llamada FakeSplitInstallManager, para solicitar el módulo. Cuando usas bundletool con la marca --local-testing para compilar un conjunto de APK y, luego, implementarlos en el dispositivo de prueba, se incluyen metadatos que le indican a la biblioteca de Play Core que debe cambiar automáticamente las llamadas a la API de tu app a fin de invocar FakeSplitInstallManager, en lugar de SplitInstallManager.

FakeSplitInstallManager incluye una marca booleana que puedes habilitar para simular un error de red la próxima vez que tu app solicite instalar un módulo. Para acceder a FakeSplitInstallManager en tus pruebas, puedes obtener una instancia usando FakeSplitInstallManagerFactory, como se muestra a continuación:

Kotlin

// Creates an instance of FakeSplitInstallManager with the app's context.
val fakeSplitInstallManager = FakeSplitInstallManagerFactory.create(context)
// Tells Play Core Library to force the next module request to
// result in a network error.
fakeSplitInstallManager.setShouldNetworkError(true)

Java

// Creates an instance of FakeSplitInstallManager with the app's context.
FakeSplitInstallManager fakeSplitInstallManager =
    FakeSplitInstallManagerFactory.create(context);
// Tells Play Core Library to force the next module request to
// result in a network error.
fakeSplitInstallManager.setShouldNetworkError(true);