Diferença entre Debug e Release no Android

Você não pode publicar um build de debug no Google Play. Entenda as diferenças, o que cada uma significa e como gerar o build correto para a loja.

Leitura: 6 min Atualizado: 2025 Verificado pela equipe AtlasTech

Índice

  1. Diferença principal
  2. Comparativo completo
  3. Assinatura: o que muda
  4. Performance e tamanho
  5. ProGuard e R8 (obfuscation)
  6. Como gerar o build release
  7. Como testar o build release antes de publicar

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ísticaDebugRelease
AssinaturaAutomática (debug keystore)Sua keystore de produção
Aceito no Google PlayNãoSim
PerformanceMenor (sem otimizações)Maior (R8, minificação)
Tamanho do arquivoMaiorMenor
Logs de debugHabilitadosDesabilitados
ProGuard / R8Desativado por padrãoAtivado por padrão
Tempo de geraçãoRápidoMais lento
Depuração remotaPermitidaBloqueada

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:

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:

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

Android Studio

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/.

Linha de comando

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:

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