Instalações do módulo de teste local

A biblioteca Play Core permite testar localmente a capacidade do seu app de fazer o seguinte, sem se conectar à Play Store:

Esta página descreve como implantar os APKs divididos do seu app no dispositivo de teste para que a Play Core use esses APKs automaticamente para simular solicitações, downloads e instalação de módulos da Play Store.

Embora não seja necessário fazer mudanças na lógica do app, você precisa atender aos seguintes requisitos:

Criar um conjunto de APKs

Crie os APKs divididos do seu app da seguinte maneira, se ainda não tiver feito isso:

  1. Crie um pacote de apps usando um dos seguintes métodos:
  2. Use bundletool para gerar um conjunto de APKs para todas as configurações do dispositivo com o seguinte comando:

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

A sinalização --local-testing inclui metadados nos manifestos dos APKs que permitem que a biblioteca Play Core saiba usar os APKs divididos locais para testar a instalação de módulos de recursos sem se conectar à Play Store.

Implantar seu app no dispositivo

Depois de criar um conjunto de APKs usando a sinalização --local-testing, use bundletool para instalar a versão base do app e transferir outros APKs para o armazenamento local do dispositivo. Você pode executar as duas ações com o seguinte comando:

bundletool install-apks --apks my_app.apks

Agora, quando você iniciar o app e concluir o fluxo do usuário para fazer o download e instalar um módulo de recursos, a biblioteca Play Core usará os APKs que bundletool transferiu para o armazenamento local do dispositivo.

Simular um erro de rede

Para simular instalações de módulo da Play Store, a biblioteca Play Core usa uma alternativa ao SplitInstallManager, chamada FakeSplitInstallManager, para solicitar o módulo. Quando você usa bundletool com a sinalização --local-testing para criar um conjunto de APKs e implantá-los no dispositivo de teste, ele inclui metadados que instruem a biblioteca Play Core a alternar automaticamente as chamadas de API do seu app para invocar FakeSplitInstallManager, em vez de SplitInstallManager.

FakeSplitInstallManager inclui uma sinalização booleana que pode ser ativada para simular um erro de rede na próxima vez que seu app solicitar a instalação de um módulo. Para acessar FakeSplitInstallManager nos testes, é possível conseguir uma instância dele usando o FakeSplitInstallManagerFactory, conforme mostrado abaixo:

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);