1. Antes de começar
Neste codelab, você vai aprender a usar o Firebase App Distribution e o plug-in fastlane para distribuir um app iOS aos testadores, coletar UDIDs do dispositivo de teste e registrá-los no perfil de provisionamento do app. Assim, é possível disponibilizar builds Ad Hoc rapidamente para os testadores. mãos.
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 fazer o download do app distribuído em um dispositivo de teste.
- Como registrar dispositivos de teste rapidamente exportando UDIDs do dispositivo de teste com o plug-in fastlane do App Distribution.
- Como atualizar o perfil de provisionamento do seu app e fazer um novo upload para distribuição
Pré-requisitos
- Uma Conta do Google
- Uma máquina Apple com o XCode 11.7+ instalado
- Um app iOS de pré-lançamento ad hoc criado no Xcode
- Uma conta paga de desenvolvedor da Apple
- Um dispositivo físico com iOS para testes
O app simulador para iOS funcionará na maior parte do codelab, mas os simuladores não podem fazer o download de versões.
Você ainda pode conferir se a configuração funcionou confirmando que a opção "Download" aparece no app da Web do testador do App Distribution.
2. Primeiros passos
Configurar o fastlane
O App Distribution é integrado ao fastlane para permitir que você automatize a distribuição de builds de pré-lançamento do seu app. O App Distribution é integrado à 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ê verá um subdiretório chamadofastlane
que contém umFastfile
,Appfile
ePluginfile
, que você usará para configurar o fastlane.
Instalar a CLI do Firebase
Você também precisará instalar a CLI do Firebase. 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 instalar um binário autônomo ou via npm
.
Depois de instalar a CLI, executar firebase --version
informará uma versão de 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 seu ID 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 seu./fastlane/Fastfile
:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- Assine seu app para distribuição.
Neste codelab, você vai 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 no seu Keychain do macOS. No entanto, normalmente, é recomendável usar a fastlane sync_code_signing action
(também conhecida 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 que você compartilhe seu 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 aplicativo antes, execute o seguinte comando para criá-lo no console do desenvolvedor da Apple:
$ fastlane produce --skip_itc
- Por fim, crie o app executando a faixa.
Você será solicitado a inserir seu ID Apple, sua senha (armazenada no seu Keychain) e o ID do pacote do seu app.
$ fastlane build
Se você tiver algum problema, consulte o guia de solução de problemas do fastlane.
4. Fazer upload do seu app no Firebase
Agora que você criou seu app, está tudo pronto para fazer upload dele no 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 novo app iOS do Firebase e insira o ID do pacote do seu app.
- Pule as próximas etapas e clique em Continuar no console. Você vai adicionar SDKs ao app mais tarde.
Seu projeto e aplicativo agora estão disponíveis na página Visão geral do projeto.
Ativar o App Distribution
- Nas seções de Lançamento e Monitorar, clique em App Distribution.
- Depois de aceitar os termos, clique em "Começar" para ativar a distribuição de apps.
Configurar uma distribuição no fastlane
- Execute o seguinte comando na raiz do seu projeto iOS para adicionar o App Distribution à sua configuração de fastlane.
Se o comando exibir 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, seu projeto do Firebase será autenticado primeiro.
- Execute o seguinte comando para conectar a CLI à sua Conta do Google:
$ firebase login
- Quando o comando imprimir um link de autenticação, abra o link 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 está tudo pronto para distribuir seu app.
- Na parte de cima do
./fastlane/Fastfile
, defina uma variável com o nomefirebase_app_id
. Substitua<your_app_id>
pelo ID do app do Firebase que você criou. Ele pode ser encontrado na página de 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 com o nome
distribute
, que chama a faixa de build e distribui o 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 seu app e criar uma distribuição.
$ fastlane distribute
Neste ponto, o Fastfile terá esta aparência:
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ê verá a nova versão do app.
5. Convide testadores para fazer o download do seu app
Quando um testador aceita um convite para testar uma versão ad hoc, é solicitada permissão para compartilhar o UDID dele. Se ele concordar, o App Distribution coletará as informações do dispositivo dele e notificará você por e-mail. Nesta seção, você vai se adicionar como testador para fazer o download e testar o app que distribuiu.
Participar como testador da versão
- Em
firebase_app_id
, na parte de cima do Fastfile, crie uma variável para colocar os testadores e inclua seu próprio endereço de e-mail, além de outros endereços de e-mail opcionais que você quiser 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, esperada pelo parâmetrotesters
. 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 terá esta aparência:
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
- Corra na faixa de novo.
$ fastlane distribute
Depois de executar a faixa, os testadores adicionados vão receber um e-mail de convite do App Distribution notificando sobre a nova versão disponível. 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 e-mail do Firebase App Distribution convidando você para testar o app. Agora você é o primeiro testador. Continue a seção abaixo para se preparar como um testador no dispositivo de teste.
Registrar o dispositivo de teste
Como testador, você precisará fazer login no Google no seu dispositivo de teste para acessar as versões de apps que foi convidado a testar. Como o build de teste é uma versão ad hoc, você também precisa registrar o dispositivo de teste instalando o perfil do Firebase. Depois disso, as versões disponíveis poderão ser acessadas no app da Web para testadores 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 Vamos 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 conferir as versões para as quais recebeu convites. 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 do Firebase um e-mail que inclui o UDID do dispositivo de teste.
- Instalar 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 app da Web do testador do App Distribution, o dispositivo de teste agora está registrado para a versão do app.
Agora que você compartilhou o UDID do dispositivo de teste com o Firebase, pode retomar o desenvolvimento. Na guia Testadores do painel do App Distribution, as informações do testador agora aparecem abaixo da versão do app com o status "Aceito":
Na próxima seção, você adicionará o UDID do dispositivo ao perfil de provisionamento do seu app e, em seguida, criará uma versão do app que funcione com o dispositivo de teste.
Exportar os UDIDs do dispositivo de testador
Como desenvolvedor, você 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 novos UDIDs de dispositivo 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 página 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 pela linha de comando usando o fastlane. Isso será feito na próxima seção.
6. Atualizar e recriar o perfil de provisionamento do app
Agora, você vai adicionar o UDID do dispositivo de teste ao perfil de provisionamento do app, recriar uma versão do app que funcione no dispositivo e distribuir a nova versão.
Adicionar lane de exportação de UDID
- Adicione outra variável na parte superior do Fastfile e defina-a como um caminho de arquivo em que o UDIDs do dispositivo 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 linha que use a ação de exportação de UDID do plug-in do App Distribution para fazer o download dos 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 faixa a seguir para fazer o download dos UDIDs.
$ fastlane download_udids
- Imprima o arquivo transferido por download, que precisa conter os UDIDs do dispositivo de teste.
$ cat tester_udids.txt
Adicionar dispositivos ao console do desenvolvedor da Apple
- Crie a linha a seguir para adicionar os UDIDs à lista de dispositivos no Console para desenvolvedores da Apple e adicioná-los ao perfil de provisionamento usando a ação
register_devices
do fastlane :
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
- Depois, execute a faixa:
$ fastlane add_new_devices
Você verá os novos dispositivos 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 faixabuild
para forçar a seleção 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 a 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 terá esta aparência:
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
Faça o download da versão no dispositivo de teste
Agora que o app inclui os UDIDs do dispositivo de teste, eles podem ser instalados neles.
- No dispositivo de teste, retorne ao app da Web do testador do App Distribution usando o link no e-mail ou o ícone na tela inicial do dispositivo.
Quando você navega até o app do codelab do UDID, percebe que a versão está pronta para download.
- Se você estiver usando 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 o processo de teste de pré-lançamento. Agora, quando quiser convidar outros testadores ou adicionar os UDIDs deles ao app, você só vai precisar executar um comando: fastlane distribute
.
Não é mais necessário coletar UDIDs individualmente de testadores nem 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 execução a cada hora ou diariamente no seu ambiente de integração contínua.
Leitura adicional
- Conheça os recursos do Firebase App Distribution, incluindo nosso SDK no app para iOS
- Saiba mais sobre o fastlane.
- Gerencie a assinatura de código da sua equipe com o
match
- Integrar o fastlane à sua CI