Como publicar um aplicativo Android na Google Play Store: guia completo
Apps mobile · Por Kevin Marcondes · Publicado em · Atualizado em · 7 min de leitura
Este passo a passo mostra como publicar um aplicativo Android na Google Play Store, do preparo do projeto à revisão e disponibilização para usuários. Você vai gerar a chave de assinatura, criar o AAB, preencher a ficha da loja, escolher tracks de testes e enviar a versão para produção com segurança.
Pré-requisitos e checklist inicial
Antes de publicar, garanta que o app está pronto para release. Tenha uma conta de desenvolvedor no Play Console, um identificador único (applicationId), versão atualizada (versionCode/versionName) e política de privacidade acessível.
Revise permissões e bibliotecas. Mantenha o target SDK atualizado e suporte a arquiteturas exigidas. Se o app usa APIs próprias, pense na segurança, autenticação e limites de uso.
Para apps que consomem APIs, vale revisar práticas de proteção e desempenho do backend. Veja recursos como APIs seguras com OAuth2 e rate limiting e dicas para reduzir latência de APIs REST.
- Conta de desenvolvedor ativa
- applicationId definitivo e único
- versionCode incrementado e versionName definida
- Política de privacidade hospedada e acessível
- Ícone, screenshots e descrição preparados
- Verificação de dependências e permissões
1) Gerar e guardar a chave de assinatura (keystore)
Você precisa assinar o app para distribuição. A chave privada identifica seu aplicativo para atualizações futuras. Se você perder essa chave, não poderá enviar updates para o mesmo applicationId. Guarde o arquivo e senhas com backup seguro.
O comando abaixo cria um keystore e um alias. Ajuste nomes, validade e caminhos conforme o seu projeto.
keytool -genkeypair -v \
-keystore myapp-release.keystore \
-alias myapp_key \
-keyalg RSA -keysize 2048 \
-validity 36500
2) Configurar assinatura e versão no Gradle
Configure o build de release com assinatura, minificação e números de versão. Não versiona o keystore no Git e use variáveis de ambiente para senhas. Confirme que o versionCode aumenta a cada envio (obrigatório).
Exemplo (Groovy) para build.gradle do módulo app:
android {
defaultConfig {
applicationId "com.seu.dominio.myapp"
versionCode 12
versionName "1.11.0"
}
signingConfigs {
release {
storeFile file("../keystore/myapp-release.keystore")
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias "myapp_key"
keyPassword System.getenv("KEY_PASSWORD")
v2SigningEnabled true
v3SigningEnabled true
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
}
3) Gerar o Android App Bundle (AAB) para upload
Novos apps na Play Store usam AAB (Android App Bundle). Ele permite distribuição otimizada por dispositivo. Gere o pacote de release com o Gradle. Verifique se o build de release está assinando corretamente.
O arquivo resultante costuma ficar em app/build/outputs/bundle/release/app-release.aab.
./gradlew clean bundleRelease
4) Políticas, integridade e segurança de dados
Antes do envio, complete os formulários de Conteúdo do app (classificação indicativa, público-alvo), Segurança dos dados (quais dados coleta/compartilha e finalidades) e Integridade (Play App Signing/Integrity API).
Tenha uma política de privacidade clara e consistente com o comportamento real do app. Não declare permissões desnecessárias e descreva o uso de dados de forma transparente. Mantenha bibliotecas atualizadas para reduzir riscos.
Se o app depende de APIs, garanta autenticação robusta, limitação de requisições e observabilidade no backend. Recursos como logs estruturados e correlação ajudam na análise de falhas pós-lançamento.
- Preencha "Conteúdo do app" e "Segurança dos dados"
- Habilite Play App Signing (recomendado)
- Revise permissões sensíveis (câmera, localização etc.)
- Atualize dependências e remova libs obsoletas
5) Ficha da loja (listagem): textos e mídias
A página da loja influencia conversão e conformidade. Prepare materiais com antecedência e otimize a leitura. Use linguagem direta e mostre benefícios com clareza.
Siga os requisitos de dimensões e formatos indicados no console. Traga capturas reais do app e destaque diferenciais sem promessas irreais.
- Título, descrição curta e descrição completa
- Ícone em alta resolução e imagens promocionais
- Screenshots por tipo de dispositivo e, se aplicável, vídeo
- Categoria e palavras-chave coerentes com o app
- Política de privacidade e informações de contato
6) Tracks de testes, revisão e publicação
Use faixas (tracks) para validar o app antes da produção. Adicione testadores, colete feedback e corrija crashes antes do grande público. Sempre aumente o versionCode para cada submissão.
Após enviar o AAB, acompanhe o relatório de pré-lançamento e avisos de política/segurança. Quando estiver estável, promova a versão para produção ou faça rollout gradual.
| Track | Uso típico | Quem recebe |
|---|---|---|
| Internal | Validação rápida por equipe e QA | Lista restrita de testadores |
| Closed | Teste com grupo controlado (beta fechado) | Conjunto de usuários convidados |
| Open | Beta público para coletar feedback em escala | Qualquer usuário que opte pelo teste |
| Production | Disponibilização geral | Todos os usuários elegíveis |
Verificação final e solução de problemas comuns
Confirme que a listagem está completa, sem pendências de política, e que a versão foi promovida à track correta. Faça instalação em um dispositivo real via Play para validar atualização assinada.
Erros comuns podem atrasar a publicação. Use mensagens do console para corrigir rapidamente e planeje um processo repetível. Se quiser automatizar builds e envio, considere uma pipeline de CI/CD; os conceitos em CI/CD com GitHub Actions ajudam a estruturar o fluxo, mesmo para Android.
- Assinatura inválida: keystore/alias/senhas incorretos ou mudou de chave
- versionCode repetido: aumente para cada release
- applicationId alterado: não permite atualizar o app existente
- Permissões sensíveis sem justificativa clara: revise e ajuste o formulário
- Crashes em dispositivos específicos: confira arquiteturas e use relatório de pré-lançamento
- APIs lentas/instáveis: revise caching e performance do backend
Perguntas frequentes
Preciso enviar APK ou AAB para a Play Store?
Para novos apps, use Android App Bundle (AAB). Ele permite que a Play distribua apenas os recursos necessários por dispositivo, reduzindo tamanho de download e melhorando a instalação.
Posso mudar o applicationId depois de publicar?
Não para o mesmo app. O applicationId identifica o aplicativo na loja. Se você mudar, a Play tratará como um novo app, e usuários não receberão atualizações automaticamente.
O que acontece se eu perder o keystore de assinatura?
Você não conseguirá assinar futuras atualizações com a mesma chave. Em geral, isso impede updates do app publicado. Guarde cópias seguras do arquivo e senhas e restrinja acesso ao mínimo necessário.
Quanto tempo leva a aprovação da publicação?
Varia conforme o conteúdo e verificações automáticas/manuais. Apps novos e com permissões sensíveis podem levar mais tempo. Planeje um período de revisão e acompanhe os avisos do console para ajustes rápidos.
Como faço uma atualização do app já publicado?
Aumente o versionCode, gere um novo AAB assinado com a mesma chave e envie. Atualize notas de versão, revise formulários de conteúdo se algo mudou e promova para a track desejada.
Quais mídias são obrigatórias na ficha da loja?
Normalmente são pedidos ícone, screenshots por tipo de dispositivo e texto descritivo. As exigências exatas e dimensões aparecem no console no momento do cadastro da listagem.
Precisa de ajuda na sua publicação Android?
Se quer revisar assinatura, checklist de políticas, automação de build e fluxo de envio para a Play Store, vamos conversar sobre o seu caso.
Falar sobre publicação AndroidVeja também
- tutorial: implementar Canary releases com Traefik em Docker Compose usando headers e weight routing para deploys graduais de aplicações PHP
- Tutorial: configurar HAProxy com Let's Encrypt e healthchecks para balanceamento de tráfego entre containers Docker em VPS (passo a passo)
- Tutorial prático: implementar mTLS entre Nginx e microserviços usando smallstep CA em Docker Compose
- Tutorial: configurar cgroup v2 e systemd ResourceControl para limitar CPU, memória e I/O de containers Docker no Debian