Distribua aplicativos Android para testadores usando Fastlane

Este documento descreve como distribuir compilações de APK para testadores usando fastlane , uma plataforma de código aberto que automatiza a criação e o lançamento de aplicativos iOS e Android. Este documento segue instruções definidas em um Fastfile . Depois de configurar o fastlane e seu Fastfile , você poderá integrar o App Distribution à sua configuração do fastlane.

Antes de você começar

Adicione o Firebase ao seu projeto Android , caso ainda não o tenha feito.

Se você não estiver usando nenhum outro produto Firebase, basta criar um projeto e registrar seu aplicativo. No entanto, se você decidir usar produtos adicionais no futuro, certifique-se de concluir todas as etapas da página com link acima.

Passo 1. Configurar fastlane

  1. Instale e configure o Fastlane .

  2. Para adicionar o App Distribution à sua configuração fastlane, execute o seguinte comando na raiz do seu projeto Android:

    fastlane add_plugin firebase_app_distribution

    Se o comando solicitar uma opção, selecione Option 3: RubyGems.org .

Etapa 2. Autenticar com Firebase

Antes de usar o plug-in fastlane, você deve primeiro autenticar seu projeto do Firebase de uma das seguintes maneiras. Por padrão, o plug-in fastlane procura credenciais na CLI do Firebase se nenhum outro método de autenticação for usado.

Etapa 3. Configure seu Fastfile e distribua seu aplicativo

  1. Em uma via ./fastlane/Fastfile , adicione um bloco firebase_app_distribution . Use os seguintes parâmetros para configurar a distribuição:
    Parâmetros firebase_app_distribution
    app

    Obrigatório : o Firebase App ID do seu aplicativo. Você pode encontrar o ID do aplicativo no console do Firebase, na página Configurações gerais .

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

    Um token de atualização impresso quando você autentica seu ambiente de CI com a CLI do Firebase (leia Usar a CLI com sistemas de CI para obter mais informações).

    service_credentials_file

    O caminho para o arquivo json da sua conta de serviço do Google. Veja acima como autenticar usando credenciais de conta de serviço .

    android_artifact_type

    Especifica o tipo de arquivo do Android (APK ou AAB).

    android_artifact_path

    Substitui apk_path (obsoleto). Caminho absoluto para o arquivo APK ou AAB que você deseja enviar. Se não for especificado, fastlane determinará a localização do arquivo a partir da pista em que o arquivo foi gerado.

    release_notes
    release_notes_file

    Notas de versão para esta compilação.

    Você pode especificar as notas de versão diretamente:

    release_notes: "Text of release notes"

    Ou especifique o caminho para um arquivo de texto simples:

    release_notes_file: "/path/to/release-notes.txt"
    testers
    testers_file

    Os endereços de e-mail dos testadores que você deseja convidar.

    Você pode especificar os testadores como uma lista de endereços de e-mail separados por vírgulas:

    testers: "ali@example.com, bri@example.com, cal@example.com"

    Ou você pode especificar o caminho para um arquivo de texto simples contendo uma lista de endereços de e-mail separados por vírgula:

    testers_file: "/path/to/testers.txt"
    groups
    groups_file

    Os grupos de testadores que você deseja convidar (consulte Gerenciar testadores ). Os grupos são especificados usando aliases de grupo , que você pode consultar no console do Firebase.

    Você pode especificar os grupos como uma lista separada por vírgulas:

    groups: "qa-team, trusted-testers"

    Ou você pode especificar o caminho para um arquivo de texto simples contendo uma lista de nomes de grupos separados por vírgula:

    groups_file: "/path/to/groups.txt"
    debug

    Uma bandeira booleana. Você pode definir isso como true para imprimir a saída de depuração detalhada.

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(...)
        # build_android_app is a built-in fastlane action.
        release = firebase_app_distribution(
            app: "1:123456789:android:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!"
        )
    end
end

Para disponibilizar a compilação aos testadores, execute sua pista:

fastlane <lane>

O valor de retorno da ação é um hash que representa a versão carregada. Este hash também está disponível usando lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] . Para obter mais informações sobre os campos disponíveis neste hash, consulte a documentação da API REST .

O plugin fastlane gera os seguintes links após o upload do lançamento. Esses links ajudam você a gerenciar binários e garantir que os testadores e outros desenvolvedores tenham a versão correta:

  • Um link para o console do Firebase exibindo uma única versão. Você pode compartilhar esse link com outros desenvolvedores da sua organização.
  • Um link para o lançamento na experiência do testador (aplicativo nativo do Android) que permite aos testadores visualizar as notas de lançamento e instalar o aplicativo em seus dispositivos. O testador precisa de acesso à versão para usar o link.
  • Um link assinado que baixa e instala diretamente o binário do aplicativo (arquivo APK ou AAB). O link expira após uma hora.

Depois de distribuir seu build, ele ficará disponível no painel App Distribution do Firebase Console por 150 dias. Quando a compilação estiver a 30 dias da expiração, um aviso de expiração aparecerá no console e na lista de compilações do testador em seu dispositivo de teste.

Os testadores que não foram convidados anteriormente para testar o aplicativo recebem convites por e-mail para começar. Os testadores existentes recebem notificações por e-mail informando que uma nova compilação está pronta para ser testada. Para saber como instalar o aplicativo de teste, consulte o guia de configuração do testador . Você pode monitorar o status de cada testador para determinar se eles aceitaram o convite e se fizeram o download do aplicativo no Firebase console.

(Opcional) Para incrementar automaticamente seu número de build sempre que criar uma nova versão no App Distribution, você pode usar a ação firebase_app_distribution_get_latest_release e, por exemplo, o plugin increment_version_code fastlane . O código a seguir fornece um exemplo de como incrementar automaticamente seu número de compilação:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

Para saber mais sobre a ação firebase_app_distribution_get_latest_release , consulte Obtenha informações sobre a versão mais recente do seu aplicativo .

Etapa 4 (opcional). Gerenciando testadores para a distribuição

Você pode adicionar e remover testadores de seu projeto ou grupo usando seu arquivo Fastfile ou executando ações fastlane diretamente. A execução de ações substitui diretamente os valores definidos em seu Fastfile .

Depois que um testador for adicionado ao seu projeto do Firebase, você poderá adicioná-lo a versões individuais. Os testadores removidos do seu projeto do Firebase não terão mais acesso às versões do seu projeto, mas poderão manter o acesso às suas versões por um determinado período.

Se você tiver um grande número de testadores, considere usar grupos.

Usar Fastfile

# Use lanes to add or remove testers from a project.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) add testers to this group
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) remove testers from this group only
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

Execute ações de fastlane

fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"

Você também pode especificar testadores usando --file="/path/to/testers.txt em vez de --emails .

As tarefas firebase_app_distribution_add_testers e firebase_app_distribution_remove_testers também aceitam os seguintes argumentos:

  • project_name : o número do seu projeto do Firebase.
  • group_alias (opcional): se especificado, os testadores serão adicionados (ou removidos) do grupo especificado.
  • service_credentials_file : o caminho para seu arquivo de credenciais de serviço do Google.
  • firebase_cli_token : token de autenticação para Firebase CLI.

O service_credentials_file e o firebase_cli_token são os mesmos argumentos usados ​​pela ação de upload.

Etapa 5 (opcional). Obtenha informações sobre o lançamento mais recente do seu aplicativo

Você pode usar a ação firebase_app_distribution_get_latest_release para buscar informações sobre a versão mais recente do seu aplicativo no App Distribution, incluindo informações de versão do aplicativo, notas de versão e horário de criação. Os casos de uso incluem o aumento automático da versão e a transferência das notas de versão da versão anterior.

O valor de retorno da ação é um hash que representa a versão mais recente. Este hash também está disponível usando lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] . Para obter mais informações sobre os campos disponíveis neste hash, consulte a documentação da API REST .

Parâmetros

Parâmetros firebase_app_distribution_get_latest_release
app

Obrigatório : o Firebase App ID do seu aplicativo. Você pode encontrar o ID do aplicativo no console do Firebase, na página Configurações gerais .

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

Um token de atualização impresso quando você autentica seu ambiente de CI com a CLI do Firebase (leia Usar a CLI com sistemas de CI para obter mais informações).

service_credentials_file

O caminho para o arquivo json da sua conta de serviço do Google. Veja acima como autenticar usando credenciais de conta de serviço .

debug

Uma bandeira booleana. Você pode definir isso como true para imprimir a saída de depuração detalhada.

Próximos passos