Índice
1. Diferença principal
No Android, existem dois tipos principais de build: debug e release. Debug é para desenvolvimento e testes — gera rapidamente, inclui ferramentas de diagnóstico e não precisa de keystore. Release é o build para distribuição — otimizado, assinado e pronto para a loja.
O Google Play não aceita builds de debug. Se você tentar fazer upload de um APK ou AAB não assinado com sua keystore de produção, o upload será rejeitado.
2. Comparativo completo
| Característica | Debug | Release |
|---|---|---|
| Assinatura | Automática (debug keystore) | Sua keystore de produção |
| Aceito no Google Play | Não | Sim |
| Performance | Menor (sem otimizações) | Maior (R8, minificação) |
| Tamanho do arquivo | Maior | Menor |
| Logs de debug | Habilitados | Desabilitados |
| ProGuard / R8 | Desativado por padrão | Ativado por padrão |
| Tempo de geração | Rápido | Mais lento |
| Depuração remota | Permitida | Bloqueada |
3. Assinatura: o que muda
O build de debug é assinado automaticamente pelo Android Studio com uma debug keystore genérica — gerada localmente e sem validade para distribuição. Isso permite instalar o app em dispositivos físicos durante o desenvolvimento sem precisar de keystore própria.
O build de release precisa ser assinado com a sua keystore de produção — o arquivo .jks com as credenciais que você criou. Essa assinatura é o que o Google Play usa para verificar que todas as atualizações vêm do mesmo desenvolvedor.
4. Performance e tamanho
O build de release é significativamente menor e mais rápido que o debug, porque:
- O compilador aplica otimizações de bytecode (R8 compiler).
- Código de debug e logs são removidos.
- Resources não utilizados são descartados (resource shrinking).
- O código é minificado — nomes de classes e métodos são encurtados.
A diferença de tamanho pode ser de 20-50% em apps médios. A diferença de performance em inicialização pode ser notável especialmente em dispositivos mais antigos.
5. ProGuard e R8 (obfuscation)
Em builds de release, o Android Studio usa o R8 (que substituiu o ProGuard) para:
- Minificação: encurta nomes de classes, métodos e variáveis — dificulta engenharia reversa.
- Tree shaking: remove código não utilizado.
- Otimização: reescreve partes do código para ser mais eficiente.
Isso é ótimo para produção, mas pode causar problemas se suas dependências não foram configuradas corretamente para o R8. Se o app crasha em release mas funciona em debug, provavelmente é um problema de regras do ProGuard/R8 faltando para alguma biblioteca.
⚠️ Sempre teste o build de release em um dispositivo real antes de publicar. Comportamentos diferentes entre debug e release (especialmente crashes causados pelo R8) são comuns e só aparecem no build de produção.
6. Como gerar o build release
Build → Generate Signed Bundle / APK
Selecione Android App Bundle (formato preferido para Google Play) ou APK. Informe o caminho da keystore, senha da keystore, alias e senha do alias. Selecione o Build Variant "release". O arquivo gerado estará em app/release/.
Gradle
Configure o bloco signingConfigs no build.gradle com as informações da keystore. Depois rode: ./gradlew bundleRelease (para AAB) ou ./gradlew assembleRelease (para APK). Configure as variáveis em um arquivo separado ou via variáveis de ambiente para não expor senhas no código.
7. Como testar o build release antes de publicar
Para instalar um APK de release em um dispositivo físico para teste:
- Habilite "Instalar apps de fontes desconhecidas" no Android.
- Conecte o dispositivo ao computador e rode:
adb install app-release.apk - Ou transfira o APK para o dispositivo e instale manualmente.
Para AAB (Android App Bundle), você não pode instalar diretamente. Use o Google Play Internal Testing — faça upload do AAB no track de testes internos e instale via Play Store no dispositivo.
✓ Sempre que possível, teste o build de release usando o track "Internal Testing" do Google Play antes de publicar em produção. É a forma mais fiel ao que o usuário final vai experienciar.
Quer que a gente publique por você?
App Store e Google Play em até 7 dias. A partir de R$1.800.
Solicitar publicação