1. Antes de começar
Neste codelab, você vai aprender a usar a Distribuição de apps do Firebase e o plug-in fastlane para distribuir um app iOS para testadores, coletar UDIDs de dispositivos de teste e registrá-los no perfil de provisionamento do app. Assim, você pode disponibilizar rapidamente builds ad hoc para os testadores.
O que você vai aprender
- Como fazer upload e distribuir um app iOS de pré-lançamento (Ad Hoc) para testadores usando o Firebase App Distribution e o fastlane.
- Como se inscrever como testador e baixar o app distribuído em um dispositivo de teste.
- Como registrar rapidamente dispositivos de teste exportando UDIDs de dispositivos de teste com o plug-in fastlane da App Distribution.
- Como atualizar o perfil de provisionamento do app e fazer upload dele novamente para distribuição.
Pré-requisitos
- Uma Conta do Google
- Um computador Apple com o XCode 11.7 ou mais recente instalado
- Um app iOS de pré-lançamento ad hoc criado no Xcode
- Uma conta de desenvolvedor da Apple paga
- Um dispositivo iOS físico para testes.
O app iOS Simulator funciona na maior parte do codelab, mas os simuladores não podem baixar versões.
Você ainda pode verificar se a configuração funcionou conferindo se o botão "Download" aparece no app da Web de teste do App Distribution.
2. Primeiros passos
Configurar o fastlane
O App Distribution se integra ao fastlane para permitir a automatização da distribuição de builds de pré-lançamento do seu app. O App Distribution se integra à sua configuração do fastlane.
- Instale e configure o fastlane.
- Execute
fastlane init
no diretório raiz do projeto durante a configuração e escolha "Configuração manual". Você vai encontrar um subdiretório chamadofastlane
que contém umFastfile
,Appfile
ePluginfile
, que você vai usar para configurar o fastlane.
Instalar a CLI do Firebase
Também é necessário instalar a Firebase CLI. Se você estiver usando macOS ou Linux, execute o seguinte comando cURL:
curl -sL https://firebase.tools | bash
Se você estiver usando o Windows, leia as instruções de instalação para receber um binário independente ou instalar via npm
.
Depois de instalar a CLI, execute firebase --version
para verificar se a versão é 12.0.0
ou mais recente:
$ firebase --version 12.0.0
3. Criar seu app com o fastlane
Criar o app
- Defina algumas variáveis globais para fastlane no seu
./fastlane/Appfile.
. Inclua o ID do app e o ID da Apple:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- Crie sua primeira faixa e use a ação
build_app
do fastlane (também conhecida comogym
) para criar seu app adicionando o seguinte ao./fastlane/Fastfile
:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- Assine o app para distribuição.
Neste codelab, você vai gerenciar sua própria certificação e perfil usando o get_certificates
(também conhecido como cert
), que gera certificados de assinatura localmente e armazena tudo no Keychain do macOS. No entanto, geralmente é melhor usar fastlane sync_code_signing action
(também conhecido como match
) para gerenciar com segurança os certificados e perfis de assinatura de código da sua equipe.
lane :build do
get_certificates()
build_app(export_method: "ad-hoc")
end
- Configure um perfil de provisionamento para seu app usando a ação
get_provisioning_profile
(também conhecida comosigh
). Isso permite compartilhar o app com testadores.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
- [Opcional] Se você nunca executou o app antes, execute o comando a seguir para criar o app no console de desenvolvedores da Apple:
$ fastlane produce --skip_itc
- Por fim, crie o app executando a faixa.
Você vai precisar informar seu ID Apple, senha (armazenada no Keychain) e ID do pacote do app.
$ fastlane build
Se você tiver problemas, consulte o guia de solução de problemas do fastlane.
4. Fazer upload do app para o Firebase
Agora que você criou o app, é hora de fazer upload dele para o App Distribution.
Criar e configurar um projeto do Firebase
- Faça login no Firebase.
- No console do Firebase, crie ou adicione um novo projeto e nomeie-o como "UDID Export Codelab".
Você não precisa ativar o Google Analytics neste projeto.
- Clique em Criar projeto.
Adicionar o app iOS ao projeto
- Clique no ícone do iOS para criar um app do Firebase para iOS e insira o ID do pacote do app.
- Pule as próximas etapas e clique em Continuar no console. Você vai adicionar SDKs ao app mais tarde.
O projeto e o app agora estão disponíveis na página Visão geral do projeto.
Ativar o App Distribution
- Na seção "Versão e monitoramento", clique em App Distribution.
- Depois de aceitar os termos, clique em "Começar" para ativar o App Distribution no seu app.
Configurar uma distribuição no fastlane
- Execute o seguinte comando na raiz do seu projeto iOS para adicionar o App Distribution à configuração do fastlane.
Se o comando solicitar uma opção, selecione Opção 3: RubyGems.org:
$ fastlane add_plugin firebase_app_distribution
- Confirme se o plug-in está instalado:
$ fastlane
A saída vai mostrar fastlane-plugin-firebase_app_distribution
na lista de plug-ins instalados.
- Depois de confirmar que o plug-in está instalado, escolha a opção 0 para cancelar.
Autenticar seu projeto do Firebase
Para usar o plug-in fastlane, primeiro autentique seu projeto do Firebase.
- Execute o comando a seguir para conectar a CLI à sua Conta do Google:
$ firebase login
- Quando o comando imprimir um link de autenticação, abra-o em um navegador.
- Quando solicitado, faça login na sua Conta do Google e conceda permissão para acessar seu projeto do Firebase.
Distribuir seu app
Agora você está pronto para distribuir seu app.
- Na parte de cima do
./fastlane/Fastfile
, defina uma variável chamadafirebase_app_id
. Substitua<your_app_id>
pelo ID do app do Firebase do app que você criou. Ele pode ser encontrado na página Configurações do projeto.
O Fastfile
é escrito em Ruby. Portanto, use a sintaxe do Ruby para definir variáveis.
firebase_app_id = "<your_app_id>"
- Adicione uma nova faixa chamada
distribute
que chama a faixa de build e distribui seu app usando a açãofirebase_app_distribution
.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
- Execute a nova faixa para criar o app e uma distribuição.
$ fastlane distribute
Neste ponto, seu Fastfile vai ficar assim:
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 console do Firebase, você vai ver a nova versão do seu app.
5. Convide testadores para baixar seu app
Quando um testador aceita um convite para testar um build ad hoc, ele precisa dar permissão para compartilhar o UDID. Se eles concordarem, o App Distribution vai coletar as informações do dispositivo e notificar você por e-mail. Nesta seção, você vai se adicionar como testador para baixar e testar o app distribuído.
Adicione você como testador da versão
- Em
firebase_app_id
na parte de cima do Fastfile, crie uma variável para armazenar testadores e inclua seu próprio endereço de e-mail, além de outros endereços opcionais que você gostaria de testar.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
- Aplique o método Array#join do Ruby para transformar a matriz
app_testers
em uma string separada por vírgulas, que é o que o parâmetrotesters
espera. Em seguida, transmita o resultado ao parâmetrotesters
defirebase_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, o Fastfile vai ficar 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
- Execute a faixa novamente.
$ fastlane distribute
Depois de executar a faixa, os testadores adicionados vão receber um e-mail de convite do App Distribution notificando sobre a versão recém-disponibilizada. No Console do Firebase, agora é possível ver os testadores adicionados na versão do app.
Como você incluiu seu endereço de e-mail, vai receber um convite do Firebase App Distribution para testar o app. Agora você é o primeiro testador! Continue na seção abaixo para configurar seu dispositivo de teste como testador.
Registrar seu dispositivo de teste
Como testador, você precisa fazer login no Google no dispositivo de teste para acessar as versões do app que foi convidado a testar. Como o build de teste é uma versão ad hoc, também é necessário registrar o dispositivo de teste instalando o perfil do Firebase. Depois disso, as versões disponíveis para você podem ser acessadas no app da Web do testador do App Distribution usando o clipe da Web adicionado à tela inicial do dispositivo.
- No dispositivo de teste iOS, abra o e-mail enviado pelo Firebase App Distribution e toque no link Começar. Abra o link no Safari.
- Agora você está no app da Web do testador do App Distribution. Na página que aparece, faça login com sua Conta do Google e toque em Aceitar convite.
- Agora você pode ver as versões a que foi convidado. Toque em Registrar dispositivo em uma das versões.
- Quando solicitado, faça o download do perfil do Firebase e instale-o no app Configurações.
A instalação do perfil concede ao Firebase permissão para:
- Registre o dispositivo de teste coletando o ID exclusivo do dispositivo (UDID).
O Firebase envia a todos os proprietários e editores do projeto um e-mail que inclui o UDID do dispositivo de teste.
- Instale um clipe da Web na tela inicial do dispositivo de teste. O clipe da Web abre o app da Web do testador do App Distribution, que permite instalar e acessar todos os apps de teste.
No web app de teste do App Distribution, o dispositivo de teste agora está registrado para o lançamento do app.
Agora que você compartilhou o UDID do dispositivo de teste com o Firebase, pode continuar como desenvolvedor. Na guia "Testadores" do painel do App Distribution, as informações do testador agora aparecem na versão do app com o status "Aceito":
Na próxima seção, você vai adicionar o UDID do dispositivo ao perfil de provisionamento do app e criar uma versão que funcione com o dispositivo de teste.
Exportar os UDIDs do dispositivo de teste
Como desenvolvedor, você vai receber um e-mail do Firebase com o UDID do dispositivo de teste. Como opção, a App Distribution facilita a coleta de vários UDIDs de dispositivos novos de uma só vez, permitindo que você os exporte diretamente do Console do Firebase como um arquivo de texto bruto.
- Para exportar todos os UDIDs, abra a guia Testadores e grupos.
- Clique em Exportar UDIDs da Apple.
O arquivo precisa conter o UDID do 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 o fastlane, o que você fará na próxima seção.
6. Atualizar o perfil de provisionamento do app e recriá-lo
Agora, adicione o UDID do dispositivo de teste ao perfil de provisionamento do app, recrie uma versão do app que funcione no dispositivo e distribua a nova versão.
Adicionar lane de exportação de UDID
- Adicione outra variável na parte de cima do Fastfile e defina um caminho de arquivo em que os UDIDs dos dispositivos dos 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"
- 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, assim como você fez no console.
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
- Execute a seguinte faixa para fazer o download dos UDIDs.
$ fastlane download_udids
- Imprima o arquivo baixado, que deve conter os UDIDs do dispositivo de teste.
$ cat tester_udids.txt
Adicionar dispositivos ao console para desenvolvedores da Apple
- Crie a seguinte faixa para adicionar os UDIDs à lista de dispositivos no console de desenvolvedor da Apple. Assim, você pode adicioná-los ao perfil de provisionamento usando a ação
register_devices
da fastlane:
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
- Em seguida, execute a faixa:
$ fastlane add_new_devices
Os novos dispositivos vão aparecer na lista de dispositivos do console do desenvolvedor.
Adicionar dispositivos ao seu perfil de provisionamento
- Adicione o argumento
force
à etapa do perfil de provisionamento na sua faixabuild
para forçar a escolha de novos dispositivos sempre que você criar.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
Executar a faixa novamente para criar e fazer upload
Agora, você vai atualizar sua faixa distribute
com as novas faixas para adicionar os dispositivos ao perfil de provisionamento, recriar o app e distribuí-lo.
- Chame as novas faixas 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
- Execute a faixa
distribute
:
$ fastlane distribute
Neste ponto, o Fastfile vai ficar 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
Fazer o download da versão no dispositivo de teste
Agora que seu app inclui os UDIDs dos dispositivos de teste, eles podem ser instalados nesses dispositivos.
- No dispositivo de teste, volte ao web app para testadores do App Distribution usando o link no e-mail ou o ícone na tela inicial do dispositivo.
Ao navegar até o app do codelab de UDID, você vai notar que a versão está pronta para download.
- Se você estiver em um dispositivo físico, pressione "Download" e instale e execute o app.
7. Parabéns
Agora você configurou o App Distribution e o fastlane para automatizar seu processo de teste de pré-lançamento. Agora, quando você quiser convidar mais testadores ou adicionar os UDIDs deles ao app, basta executar um comando: fastlane distribute
.
Assim, não é mais necessário coletar UDIDs de testadores individualmente nem acessar o Apple Developer Console para atualizar listas de dispositivos ou perfis de provisionamento. Você nem precisa abrir o Xcode!
É fácil configurar esse fluxo de trabalho para ser executado a cada hora ou diariamente no seu ambiente de integração contínua.
Leitura adicional
- Confira os recursos do Firebase App Distribution, incluindo o SDK no app para iOS.
- Saiba mais sobre o fastlane.
- Gerenciar a assinatura de código da sua equipe com o
match
- Integrar o fastlane à sua CI