App Bundle (.aab) & Assets da Loja
Aprenda a compilar o arquivo .aab assinado com Keystore criptográfica, otimizar os elementos visuais de conversão (ASO) e preencher os questionários regulatórios do Play Console sem erros.
3.1. Compilação do App Bundle (.aab) & Keystore
O formato monolítico .apk não é aceito para publicação no Google Play. É obrigatório compilar em Android App Bundle (.aab), permitindo que o Google Play gere Split APKs otimizados para a arquitetura de CPU (arm64-v8a, armeabi-v7a) e densidade de tela de cada usuário, reduzindo o tamanho de download em até 35%.
.jks / .keystore e suas senhas identificam a autoria técnica dos seus pacotes. Com o Play App Signing ativo, caso você perca sua chave de upload, é possível solicitar a redefinição via suporte do Play Console (levando 48h para ativação), mas manter um backup criptografado evita interrupções no cronograma de releases.
Comandos Oficiais de Geração de Keystore e Build AAB
# 1. Gerar uma Keystore JKS de 2048 bits (RSA) válida por 25 anos
keytool -genkeypair -v -storetype PKCS12 -keystore upload-keystore.jks \
-alias upload -keyalg RSA -keysize 2048 -validity 9125
# 2. Compilar o App Bundle (.aab) em projetos Android Nativo / Kotlin
./gradlew bundleRelease
# 3. Compilar o App Bundle (.aab) em projetos Flutter
flutter build appbundle --release --obfuscate --split-debug-info=build/app/outputs/symbols
# 4. Compilar o App Bundle (.aab) em projetos React Native / Expo (EAS)
eas build --platform android --profile production
-
Play App Signing & impressões SHA-1 / SHA-256: Caso seu aplicativo utilize Google Sign-In, Firebase Auth ou Google Maps, lembre-se de copiar o certificado SHA-1 da Chave de Assinatura do App (gerenciada pelo Google) em Configuração → Integridade do App no Play Console e cadastrá-lo no Firebase Console. Caso cadastre apenas o SHA-1 local de debug, o login social falhará em produção.
-
Version Code Monotônico: Incremente sempre o inteiro
versionCode(ex:10,11,12) a cada novo upload, mesmo quando o envio anterior for descartado na faixa interna.
3.2. Especificações Técnicas da Ficha da Loja (ASO)
Uma ficha da loja incompleta ou com capturas de tela distorcidas reduz a conversão de testadores e pode gerar rejeição por Violação de Metadados. Siga rigorosamente a matriz oficial:
| Ativo / Metadado | Especificação Técnica / Limite | Boas Práticas de Aprovação (Play Store) |
|---|---|---|
| Título do App | Máximo de 30 caracteres | Evite termos genéricos ("O Melhor", "#1", "Grátis") ou emojis no título. |
| Descrição Curta | Máximo de 80 caracteres | Resuma a proposta única de valor em uma frase direta sem keyword stuffing. |
| Descrição Completa | Até 4.000 caracteres | Estruture em tópicos claros. Não mencione nomes de concorrentes nem depoimentos não verificáveis. |
| Ícone de Alta Resolução | 512 x 512 px (PNG 32-bit, máx 1 MB) | Não inclua selos de texto pequenos ("Novo", "2026", "Pro") que fiquem ilegíveis em telas menores. |
| Gráfico de Recurso (Capa) | 1024 x 500 px (PNG 24-bit ou JPEG) | Sem canal alfa (transparência). Centralize elementos vitais longe das bordas. |
| Capturas de Celular | 2 a 8 imagens (16:9 ou 9:16, mín. 1080p) | Mostre a interface real do app em execução; evite fotos de banco de imagens sem a tela do app. |
| Capturas de Tablet (7" e 10") | Até 8 imagens por categoria | Essencial para elegibilidade na seção de destaque para telas grandes e Chromebooks. |
3.3. Questionários Obrigatórios (Conteúdo do App)
Todos os 10 itens da seção Política e Programas → Conteúdo do App no menu lateral do Play Console devem estar concluídos antes de submeter a versão:
-
Segurança dos Dados (Data Safety): Deve refletir tanto o seu código próprio quanto os SDKs de terceiros (Firebase Crashlytics coleta Registros de Falhas e IDs do Dispositivo; Google AdMob coleta ID de Publicidade e Interações no App).
-
Acesso ao App (Credenciais de Teste): Se qualquer tela exigir login, forneça um usuário e senha estáticos de demonstração que não expirem e não dependam de código SMS/2FA em tempo real.
-
Declaração de ID de Publicidade (AD_ID): No Android 13+, se você usa Analytics ou AdMob, declare se o
com.google.android.gms.permission.AD_IDestá presente no manifesto mesclado.