Distribua suas compilações de iOS de pré-lançamento mais rapidamente com App Distribution e fastlane

1. Antes de começar

4cddd34bd261cea0.png

Neste codelab, você aprenderá a usar o Firebase App Distribution e seu plug-in fastlane para distribuir um aplicativo iOS para testadores, coletar UDIDs de dispositivos de teste e registrá-los no perfil de provisionamento do seu aplicativo, para que você possa obter builds ad hoc rapidamente para os testadores ' mãos.

O que você aprenderá

  • Como carregar e distribuir um aplicativo iOS de pré-lançamento (Ad Hoc) para testadores usando Firebase App Distribution e fastlane .
  • Como se inscrever como testador e baixar o aplicativo distribuído em um dispositivo de teste.
  • Como registrar rapidamente dispositivos de teste exportando UDIDs de dispositivos de teste com o plug-in fastlane do App Distribution.
  • Como atualizar o perfil de provisionamento do seu aplicativo e recarregá-lo para distribuição.

O que você precisará

  • Uma conta do Google
  • Uma máquina Apple com XCode 11.7+ instalado
  • Um aplicativo iOS de pré-lançamento Ad Hoc criado no Xcode
  • Uma conta paga de desenvolvedor da Apple
  • Um dispositivo iOS físico para teste.

O aplicativo simulador do iOS funcionará na maior parte do codelab, mas os simuladores não podem fazer o download de versões.

Você ainda pode verificar se a configuração funcionou verificando se o botão "Download" aparece no aplicativo da Web do testador do App Distribution.

2. Comece

Configurar via rápida

O App Distribution se integra ao fastlane para permitir que você automatize a distribuição de compilações de pré-lançamento do seu aplicativo. O App Distribution se integra à sua configuração fastlane .

  1. Instale e configure o fastlane .
  2. Execute fastlane init no diretório raiz do seu projeto durante a configuração e escolha "Configuração manual". Você verá um subdiretório chamado fastlane que contém um Fastfile , Appfile e Pluginfile , que você usará para configurar o fastlane .

Instale a CLI do Firebase

Você também precisará instalar o Firebase CLI . Se você estiver usando macOS ou Linux, poderá executar o seguinte comando cURL:

curl -sL https://firebase.tools | bash

Se você estiver usando o Windows, leia as instruções de instalação para obter um binário autônomo ou para instalar via npm .

Depois de instalar a CLI, executar firebase --version deve relatar uma versão de 12.0.0 ou superior:

$ firebase --version
12.0.0

3. Crie seu aplicativo com fastlane

Crie seu aplicativo

  1. Defina algumas variáveis ​​globais para fastlane em seu ./fastlane/Appfile. Inclua o ID do seu aplicativo e seu ID Apple:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. Crie sua primeira faixa e use a ação build_app do fastlane (também conhecida como gym ) para criar seu aplicativo adicionando o seguinte ao seu ./fastlane/Fastfile :
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Assine seu aplicativo para distribuição.

Neste codelab, você gerenciará sua própria certificação e perfil usando get_certificates (também conhecido como cert ), que gera certificados de assinatura localmente e armazena tudo em seu macOS Keychain. Normalmente, no entanto, você desejará usar a ação fastlane sync_code_signing action (também conhecida como match ) para gerenciar com segurança os certificados e perfis de assinatura de código de sua equipe.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. Configure um perfil de provisionamento para seu aplicativo usando a ação get_provisioning_profile (também conhecida como sigh ). Isso permite que você compartilhe seu aplicativo com os testadores.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [Opcional] Se você nunca executou seu aplicativo antes, execute o seguinte comando para criar seu aplicativo no console do desenvolvedor da Apple:

$ fastlane produce --skip_itc

  1. Por fim, crie seu aplicativo executando o arquivo lane.

Você será solicitado a fornecer seu ID Apple, senha (que está armazenada em seu chaveiro) e o ID do pacote do seu aplicativo.

$ fastlane build

Se você encontrar algum problema, consulte o guia de solução de problemas do fastlane .

4. Carregue seu aplicativo no Firebase

Agora que você criou seu aplicativo, está pronto para carregá-lo no App Distribution.

Criar e configurar um projeto do Firebase

  1. Faça login no Firebase.
  2. No console do Firebase, crie ou adicione um novo projeto e nomeie seu projeto como "UDID Export Codelab".

Você não precisa ativar o Google Analytics para este projeto.

  1. Clique em Criar projeto .

Adicione seu aplicativo iOS ao projeto

  1. Clique no ícone do iOS para criar um novo aplicativo Firebase para iOS e insira o ID do pacote do seu aplicativo.

9c26c130a6c42212.png

  1. Ignore as próximas etapas e clique em Continuar no console . Você adicionará SDKs ao seu aplicativo posteriormente.

Seu projeto e aplicativo agora estão disponíveis na página Visão geral do projeto .

66f79cc8a97fa8e9.png

Ativar distribuição de aplicativos

  1. Na seção Release & Monitor, clique em App Distribution .
  2. Depois de aceitar os termos, clique em "Começar" para habilitar o App Distribution para seu aplicativo.

460213326c2784ae.png

Configurar uma distribuição em fastlane

  1. Execute o seguinte comando na raiz do seu projeto iOS para adicionar o App Distribution à sua configuração fastlane .

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

$ fastlane add_plugin firebase_app_distribution

  1. Confirme se o plug-in está instalado:

$ fastlane

A saída deve mostrar fastlane-plugin-firebase_app_distribution na lista de plugins instalados.

  1. Depois de confirmar que o plug-in está instalado, escolha a opção 0 para cancelar.

Autentique seu projeto do Firebase

Para usar o plug-in fastlane , você primeiro autenticará seu projeto Firebase.

  1. Execute o seguinte comando para conectar a CLI à sua conta do Google:

$ firebase login

  1. Quando o comando imprimir um link de autenticação, abra o link em um navegador.
  2. Quando solicitado, faça login em sua Conta do Google e conceda permissão para acessar seu projeto Firebase.

Distribua seu aplicativo

Agora você está pronto para distribuir seu aplicativo.

  1. No topo do seu ./fastlane/Fastfile , defina uma variável chamada firebase_app_id . Substitua <your_app_id> pelo Firebase App ID para o aplicativo que você criou (isso pode ser encontrado na página de configurações do projeto ).

O Fastfile é escrito em Ruby, então use a sintaxe Ruby para definir variáveis.

firebase_app_id = "<your_app_id>"
  1. Adicione uma nova faixa chamada distribute que chama a faixa de construção e, em seguida, distribui seu aplicativo usando a ação firebase_app_distribution .
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. Execute a nova faixa para criar seu aplicativo e criar uma distribuição.

$ fastlane distribute

Neste ponto, seu Fastfile deve se parecer com o seguinte:

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

Depois de atualizar o Firebase console, você verá a nova versão do seu aplicativo.

c59dc1a94de3bf3c.png

5. Convide testadores para baixar seu aplicativo

Quando um testador aceita um convite para testar uma compilação Ad Hoc, é solicitada permissão para compartilhar seu UDID. Se eles concordarem, o App Distribution coleta as informações do dispositivo e notifica você por e-mail. Nesta seção, você se adicionará como testador para baixar e testar o aplicativo distribuído.

Adicione-se como um testador para o lançamento

  1. Em firebase_app_id na parte superior do seu Fastfile, crie uma variável para manter os testadores e inclua seu próprio endereço de e-mail, bem como outros endereços de e-mail opcionais que você gostaria de experimentar.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Aplique o método Array#join do Ruby para transformar o array app_testers em uma string separada por vírgula, que o parâmetro testers espera. Em seguida, passe o resultado para o parâmetro testers de firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

Neste ponto, seu Fastfile deve estar assim:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. Execute a pista novamente.

$ fastlane distribute

Depois de executar a faixa, os testadores que você adicionou receberão um e-mail de convite do App Distribution notificando-os sobre a nova versão disponível. No console do Firebase, agora você pode ver os testadores adicionados na versão do seu aplicativo.

2e0fc9603b868af8.png

Como você incluiu seu endereço de e-mail, receberá um e-mail do Firebase App Distribution convidando-o a testar o aplicativo. Agora você é o primeiro testador! Continue na seção abaixo para se configurar como um testador em seu dispositivo de teste.

Registre seu dispositivo de teste

Como testador, você precisará fazer login no Google em seu dispositivo de teste para acessar os lançamentos de aplicativos para os quais foi convidado a testar. Como sua compilação de teste é uma versão Ad Hoc, você também precisará registrar seu dispositivo de teste instalando o perfil do Firebase. Posteriormente, os lançamentos que ficam disponíveis para você podem ser acessados ​​no aplicativo da web do testador do App Distribution, usando o clipe da web adicionado à tela inicial do seu dispositivo.

  1. Em seu dispositivo iOS de teste, abra o e-mail enviado pelo Firebase App Distribution e toque no link Get Started . Certifique-se de abrir o link no Safari.
  2. Agora você está no aplicativo da web do testador do App Distribution. Na página exibida, faça login com sua conta do Google e toque em Aceitar convite.

d833407de251b89f.png

  1. Agora você pode ver os lançamentos para os quais foi convidado. Toque em Registrar dispositivo em um dos lançamentos.

fd141215e54a938d.png

  1. Quando solicitado, baixe o perfil do Firebase e instale o perfil no aplicativo Configurações.

A instalação do perfil concede ao Firebase permissão para:

  • Registre o dispositivo de teste coletando a ID de dispositivo exclusiva (UDID) do dispositivo.

O Firebase envia a todos os proprietários e editores do projeto Firebase um e-mail que inclui o UDID do dispositivo de teste.

  • Instale um web clip na tela inicial do dispositivo de teste. O clipe da web abre o aplicativo da web do testador do App Distribution, que permite instalar e acessar todos os seus aplicativos de teste.

No aplicativo da web do testador do App Distribution, seu dispositivo de teste agora está registrado para o lançamento do seu aplicativo.

fe93d649dfa25877.png

Agora que você compartilhou o UDID do seu dispositivo de teste com o Firebase, pode continuar como desenvolvedor. Na guia Testadores do painel do App Distribution , suas informações de testador agora aparecem na versão do seu aplicativo com o status "Aceito":

7b9f665a63a384cf.png

Na próxima seção, você adicionará o UDID do dispositivo ao perfil de provisionamento de seu aplicativo e criará uma versão de seu aplicativo que funcione com seu dispositivo de teste.

Exporte os UDIDs do seu dispositivo testador

Como desenvolvedor, você receberá um e-mail do Firebase contendo o UDID do dispositivo de teste. Como opção, o App Distribution facilita a coleta de vários UDIDs de novos dispositivos de uma só vez, permitindo que você os exporte diretamente do console do Firebase como um arquivo de texto bruto.

  1. Para exportar todos os UDIDs, abra a guia Testadores e grupos .

241a9936898a2fc0.png

  1. Clique em Exportar UDIDs da Apple .

bcf0c26c522d9b4e.png

O arquivo deve conter o UDID do seu dispositivo de teste.

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

Os UDIDs também podem ser exportados da linha de comando usando fastlane , o que você fará na próxima seção.

6. Atualize o perfil de provisionamento do seu aplicativo e reconstrua-o

Agora, você adicionará o UDID do seu dispositivo de teste ao perfil de provisionamento do seu aplicativo, reconstruirá uma versão do seu aplicativo que funcione para o seu dispositivo e distribuirá a nova versão.

Adicionar faixa de exportação UDID

  1. Adicione outra variável na parte superior de seu Fastfile e defina-a como um caminho de arquivo onde os UDIDs do dispositivo de seus testadores serão baixados.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. Configure uma nova faixa que use a ação de exportação de UDID do plug-in App Distribution para baixar os UDIDs do testador, exatamente como você fez no console.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. Execute a seguinte faixa para baixar os UDIDs.

$ fastlane download_udids

  1. Imprima o arquivo baixado, que deve conter os UDIDs do dispositivo de teste.

$ cat tester_udids.txt

Adicionar dispositivos ao console de desenvolvedor da Apple

  1. Crie a seguinte faixa para adicionar os UDIDs à ​​sua lista de dispositivos no console do desenvolvedor da Apple, para que você possa adicioná-los ao seu perfil de provisionamento usando a ação register_devices do fastlane :
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. Em seguida, execute a pista:

$ fastlane add_new_devices

Você deve ver os novos dispositivos na lista de dispositivos do console do desenvolvedor.

Adicione dispositivos ao seu perfil de provisionamento

  1. Adicione o argumento force à etapa do perfil de provisionamento em sua faixa build , para forçá-lo a selecionar novos dispositivos toda vez que você construir.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

Execute novamente a pista para construir e carregar

Agora, você atualizará sua faixa distribute com as novas faixas para adicionar os dispositivos ao perfil de provisionamento, recriar o aplicativo e distribuí-lo.

  1. Chame as novas pistas de distribute :
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. Execute a faixa distribute :

$ fastlane distribute

Neste ponto, seu Fastfile deve estar assim:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

Baixe a versão do dispositivo de teste

Agora que seu aplicativo inclui os UDIDs do dispositivo de teste, eles podem ser instalados nos dispositivos de teste.

e275f73d57cc8fb1.png

  1. Em seu dispositivo de teste, retorne ao aplicativo da web do testador do App Distribution usando o link no e-mail ou o ícone na tela inicial do dispositivo.

Ao navegar até o aplicativo de codelab UDID, você verá que a versão está pronta para download.

pai6d03b6ad78746.png

  1. Se você estiver em um dispositivo físico, clique em download, instale e execute o aplicativo!

7. Parabéns

Agora você configurou o App Distribution e o fastlane para automatizar seu processo de teste de pré-lançamento. Agora, quando quiser convidar testadores adicionais ou adicionar seus UDIDs ao seu aplicativo, você só precisará executar um comando: fastlane distribute .

Portanto, chega de coletar UDIDs individualmente dos testadores ou acessar o console do desenvolvedor da Apple para atualizar listas de dispositivos ou perfis de provisionamento. Você nem precisa abrir o XCode!

Esse fluxo de trabalho é fácil de configurar para ser executado de hora em hora ou diariamente em seu ambiente de integração contínua.

Leitura adicional