# Utilizando o Firebase App Distribution para distribuir e testar seus aplicativos

Fala, devs. Blz? Hoje vamos dar continuidade a [**série**](https://ianoliveira.hashnode.dev/serie-dominando-o-firebase-em-aplicativos-flutter) “Dominando o Firebase em Aplicativos Flutter” uma sequência de artigos sobre as principais funcionalidades do Firebase e como integrá-las ao seu aplicativo Flutter.💙

Seja para autenticação de usuários, armazenamento de dados, envio de notificações push ou captura e análise de erros, seus produtos sempre me ofereceram a solução perfeita.

Segundo o [**blog oficial do Firebase**](https://firebase.blog/posts/2022/05/whats-new-at-google-io) “Mais de 3 milhões de desenvolvedores, de startups a empresas, usam o Firebase para alcançar e envolver bilhões de usuários”

Hoje meu objetivo é abordar o uso do **App Distribution**, uma ferramenta que ajuda você rapidamente a distribuir seus aplicativos para os testadores sem ter que passar pelo estresse de subir o arquivo compilado do app para duas plataformas separadas, como Testflight para iOS e Google Play Console para Android.

O Firebase App Distribution faz parte do Firebase assim como outros serviços.

Então vem comigo. 🤏🏻 👨🏻‍💻

### O que é Firebase App Distribution?

Segundo a [documentação](https://firebase.google.com/docs/app-distribution?hl=pt-br) oficial "O Firebase App Distribution é um serviço que facilita a distribuição dos seus aplicativos para trusted testers (testadores confiáveis). Ao disponibilizar seus apps para os testers rapidamente, é possível receber feedback com antecedência e frequência.

Além disso, se você usar o Crashlytics nos seus aplicativos, receberá automaticamente métricas de estabilidade para todos os seus builds, para saber quando está tudo pronto para o envio."

Depois de concluir a configuração, o upload e a distribuição de apps geralmente são bem rápidos.

### Utilizando o Firebase App Distribution

**Passo #1: Adicionando Firebase ao seu aplicativo**

Nesse artigo não irei ensinar a configurar o firebase pois fiz isso em outro post, você pode ler-lo [aqui](https://ianoliveira.dev/configurando-o-firebase-no-flutter).

**Passo #2: Ativando a distribuição de aplicativos no Firebase Console**

Acesse [o Firebase Console](https://console.firebase.google.com/) em seu projeto e ative o App Distribution. Você pode encontrar o App Distribution no painel esquerdo em **Liberar e Monitorar.**

![Firebase App Distribution](https://cdn.hashnode.com/res/hashnode/image/upload/v1713960101312/84958c67-6d2f-45a1-a770-479a8525115d.png align="center")

Depois de clicar em **Vamos começar,** você chegará à página inicial do App Distribution, que se parece com o seguinte:

![Firebase App Distribution](https://cdn.hashnode.com/res/hashnode/image/upload/v1713960211529/877aa00d-9ac9-486e-a183-f5a84cc796c0.png align="center")

### Distribuindo uma compilação para Android

Para distribuir seu app aos testadores android, faça upload do arquivo APK usando o Firebase console:

1. Abra a [página App Distribution](https://console.firebase.google.com/project/_/appdistribution?hl=pt-br) do Firebase console. Selecione seu projeto do Firebase quando solicitado.
    
2. Na Aba **Lançamentos**(Releases), selecione o aplicativo que deseja distribuir no menu suspenso.
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713831653191/65b395e0-74f1-4868-82a3-3a203d19827f.png align="center")

Gere o arquivo APK do seu aplicativo com o comando **flutter build apk --release e** depois de gerá-lo com sucesso faça o upload dele.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713923360510/8714f3e8-91a5-430d-a3f3-2d0fa31dcece.png align="center")

Com o arquivo gerado, na aba **lançamentos**, arraste e solte ou navegue pela compilação (APK/AAB/IPA) no Firebase App Distribution. Aguarde até que seu aplicativo seja carregado no Firebase Console. Veja o print abaixo:

![Adicionar testadores](https://cdn.hashnode.com/res/hashnode/image/upload/v1713960629582/44ccee00-9f35-4be7-8784-b3a5775d6f8f.png align="center")

Assim que a compilação for carregada com sucesso, você será convidado a adicionar quem vão ser os testadores dessa versão. A aba **Testadores e Grupos** pode ser usada para essa configuração onde você irá cadastrar um tester ou um grupo com vários testers.

A compilação que você carrega será distribuída a esses testadores. Você pode verificar a [documentação](https://firebase.google.com/docs/app-distribution/add-remove-testers?platform=ios&hl=pt-br) para obter mais detalhes sobre o assunto.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713923924972/504c5c50-febf-4370-98de-af2c9790e2df.png align="center")

A última etapa é adicionar as notas de versão e clicar em **Distribuir** e ele estará disponível para todos os seus testadores.

É isso. Seu aplicativo é enviado para seus testadores 👨🏼‍🔧.

<mark>OBS: Depois de distribuir seu build, ele ficará disponível no painel App Distribution do Firebase console por 150 dias. Quando faltam 30 dias para a compilação expirar, um aviso de expiração aparece no console e na lista de compilações do testador em seu dispositivo de teste.</mark>

### Como testar?

Os testadores irão receber um email com um convite enviado pelo Firebase App Distribution, abra o email e clique no link. Você será redirecionado para o aplicativo da Web do testador **do Firebase App Distribution**, faça login com sua conta do Google e toque em **Aceitar convite.**

Agora você pode ver o aplicativo para o qual foi convidado a testar.

Se você quiser também pode de forma opcional instalar e utilizar **o Firebase App Tester,** que evita que as versões baixadas sejam adicionadas à pasta `Downloads` do seu celular.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713960722715/4fb591a4-7e30-45e4-bb1a-2daf49ba7370.png align="center")

Toque em **Fazer o download** e assim que o download for concluído, seu lançamento aparecerá automaticamente como um atalho na tela inicial do seu dispositivo.

### Distribuindo uma compilação para IOS

Para distribuir seu app aos testadores IOS, teremos que fazer algumas configurações extras no portal do desenvolvedor Apple. A primeira coisa é registrar os dispositivos do testador.

Um [***build ad-hoc***](https://developer.apple.com/videos/play/wwdc2019/304/) não é assinado com um perfil Enterprise. Um dispositivo só vai conseguir instalar um build ad-hoc se o identificador exclusivo do dispositivo (UDID, na sigla em inglês) estiver incluído no perfil de provisionamento do build.

Faça login em sua **conta de desenvolvedor Apple** e selecione ***Certificados, identificadores e perfis*** . Em seguida, selecione a seção **Dispositivos** à esquerda.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713961329805/9a991631-bbab-433c-a7c1-fdb903561302.png align="center")

Clique em registrar um novo dispositivo e você chegará a uma tela parecida com essa abaixo:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713958112547/7faad22b-80d0-48f0-a9a0-194a761d51f6.png align="center")

### **Encontrando seu** UDID **com Finder (macOS)**

Plugue seu Iphone no seu mac e navegue até o Finder e selecione-o, você verá algumas informações sobre o celular conectado. Para mim tive que clicar algumas vezes nos dados abaixo do nome do Iphone para mostrar o UDID com sucesso!

![Finder](https://cdn.hashnode.com/res/hashnode/image/upload/v1713958906414/149704e4-524d-47bc-869a-fc1bc19174a6.png align="center")

### **Maneira alternativa de encontrar UDID com o Xcode**

* Conecte seu dispositivo iOS ao Xcode
    
* Abra o menu **Janela** &gt; **Dispositivos e Simuladores**
    
* Encontre o seu dispositivo exibido nesta lista e visualize-o no **Identifier** “identificador” que é o mesmo **UDID.**
    

Depois de inserir com sucesso *o UUID* e o nome, continue o processo. Em seguida, *aceite* e *registre* o dispositivo.

**Aceitando o convite e Instalando o Certificado**

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. No aplicativo da Web do testador **do Firebase App Distribution** exibido, faça login com sua conta do Google e toque em **Aceitar convite.**
    
3. Toque em **Registrar dispositivo** para compartilhar seu UDID com o Firebase para que você possa atualizar o perfil de provisionamento do seu aplicativo posteriormente.
    
4. Siga as instruções e vá para configurações para baixar o perfil e compartilhar seu UDID.
    
5. ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713966783817/bf0a9284-21e5-4af5-9884-1ab293946894.png align="center")
    
    Quando seu dispositivo for registrado com sucesso deve aparecer um popup como esse abaixo.
    
6. ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713967147211/8803a2a4-2a7d-478b-ac41-e1b89e2dd5c7.png align="center")
    
    Agora envie uma nova versão do aplicativo para o testador e ele poder baixar e instalar com sucesso.
    

### Gerando o IPA de compilação

Para criar um arquivo IPA, abra o Xcode, navegue até **Assinatura e Recursos** e selecione uma equipe de desenvolvimento.

![Xcode](https://cdn.hashnode.com/res/hashnode/image/upload/v1713963265122/e060c67a-317f-4029-a258-5fc43e885c8c.png align="center")

Quando estiver pronto para distribuir uma versão de pré-lançamento de seu aplicativo para testadores, selecione "Qualquer dispositivo iOS (arm64)" como destino de compilação e **Produto**\-&gt;**Arquivo**. Depois que o arquivo for criado, crie uma distribuição assinada com o perfil de distribuição de desenvolvimento.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713965815553/31c18f87-6453-472f-830c-9865293faca0.png align="center")

![Gerando o Archive](https://cdn.hashnode.com/res/hashnode/image/upload/v1713965925376/0101288f-3ea7-45ec-8818-08131204c231.png align="center")

Quando a compilação for concluída, será mostrado uma tela como essa abaixo onde contém o arquivo de compilação gerado:

![Distribuindo a compilação](https://cdn.hashnode.com/res/hashnode/image/upload/v1713967691622/d2f81845-b4a7-4588-88b3-b528fc3d870c.png align="center")

Clique em **Distribute App.**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713967763148/ad36aec2-4c8f-489f-a732-45978e4aa246.png align="center")

Selecione o método de distribuição correto que para o nosso caso será **Debugging** e em seguida prossiga para distribuição. Espere o processamento.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713967912516/6504a0da-3a46-4f14-8527-a620c9c11906.png align="center")

Será salvo um arquivo IPA e alguns arquivos de log na pasta especificada.

Agora você distribui o arquivo IPA para seus testadores fazendo o upload no Firebase e selecionando os testadores para essa compilação. 🛠️🎉

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713968209070/eac8b9d1-e19f-4d65-81d8-2eb817b362be.png align="center")

Ufa, é isso, chegamos ao fim de mais um super tutorial 😎📲

### **Conclusão**

Bom é isso 😎.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1718681471575/c663b56d-cc60-40a8-ba7c-b2fb9aaf4f2e.gif align="center")

O Firebase App Distribution se destaca como uma ferramenta robusta e completa para a distribuição de aplicativos móveis, oferecendo diversos benefícios para desenvolvedores e testadores além da rapidez e eficiência para simplificar o processo de distribuição de aplicativos.

Em última análise, ao adotar o Firebase App Distribution, as equipes de desenvolvimento estão posicionadas para alcançar maior produtividade.

Onde eu trabalho usamos o Firebase App Distribution ativamente para enviar compilações para os QAs.

Em artigos futuros da série, veremos como usar outros recursos do Firebase como: Authentication, Crashlytics, Remote Config e muito mais com Flutter.

Espero que você tenha gostado e obrigado por acompanhar até aqui! Compartilhe-o com seus amigos e colegas!

Juntos, vamos construir apps incríveis que transformam o mundo!

Se tiver alguma dúvida ou contribuição, deixe nos comentários!

Me siga para estar sempre por dentro dos próximos artigos 📲 🚀

# **🌐 Minhas redes sociais 🌐**

[**GitHub**](https://www.github.com/iang12) | [**LinkedIn**](https://www.linkedin.com/in/ianoliveirag12/) | [**Instagram**](https://www.instagram.com/ianoliveira.dev/) | [**Twitter**](https://twitter.com/ianoliveirag12)**(X)** | [**Medium**](https://medium.com/@ianoliveirag12)
