Publicando sua app no Google Play

Trabalhando com Android, a gente costuma gastar um bom tempo de desenvolvimento preocupados com o funcionamento da app. Seja desenvolvendo a lógica, produzindo o melhor layout para os diferentes dispositivos ou tratando as condições de uso, como nosso usuário estar com algum serviço do celular desabilitado.

É uma grande satisfação ver a app pronta, funcionando no seu device. O próximo passo é garantir que outras pessoas possam usá-la também.

Para isso, basta que você disponibilize seu .apk na web, de modo que possa ser baixado por outras pessoas. Entretanto, para garantir algum controle de qualidade, segurança e até mesmo conteúdo impróprio, o Google criou o Google Play, o principal marketplace do universo Android.

A ferramenta criada para esse fim é o Google Play Developer Console que pode ser acessado pela url https://play.google.com/apps/publish/. Ao acessar essa url pela primeira vez, pede-se que façamos o nosso registro, que é dividido em poucos passos:

Depois desse passo, entramos na página principal do Developer Console. Podemos começar a configurar nossa publicação clicando no botão “Adicionar novo app”. No popup que surgir, devem ser definidos o idioma padrão e o título.

Adicionar novo app

Existem duas opções para terminar de criar sua app: Fazer o upload do .apk agora com a opção “Enviar APK”, ou deixar pra fazer mais tarde clicando em “Preparar lista na Play Store”. Não importa qual opção você escolha, o Developer Console ainda não vai publicar sua app, vai apenas criar um “draft” (rascunho) da sua publicação.

Para publicar basta clicar no botão “Publicar app” no canto direito, mas nesse momento o botão está desabilitado. Isso porque o Google exige que uma série de informações sejam passadas, como em quais países o aplicativo irá circular e até a classificação indicativa.

O bom é que logo acima desse botão tem um link “Porque não posso publicar?” que lista todos os detalhes que faltam.

A primeira coisa que o Google exige é o .apk . Esse talvez seja o passo mais difícil, pois esse .apk precisa ser preparado para publicação, que deixa ele um pouco diferente do .apk de desenvolvimento.

 

Preparando sua app

Para começar, o Google sugere que a gente escolha um bom nome de package. Se você não se preocupou muito com isso quando começou a desenvolver, essa é a hora de pensar um pouco nele. Uma vez publicada a app, não podemos mais mudar o nome do package, pois o Google Play associa o nome do package com a publicação.

Em seguida, temos que desativar o log e o debug da app. Desativamos o log tirando do código toda chamada de métodos da classe Log. Para desativar o debug, basta mudar o valor do atributo android:debuggable para false no AndroidManifest.xml (o valor default dele é false, então se ele não existir já está tudo certo).

Falando em AndroidManifest.xml, tem mais algumas coisas a fazer por lá. Uma é revisar se as permissões da sua app estão corretas. Outra é conferir os atributos android:icon e android:label, que representam o ícone que aparece no device das pessoas que instalarem o sua app e o título que vai aparecer junto do ícone.

O próximo passo é versionar sua app. Existem dois atributos na tag manifest do AndroidManifest.xml, o versionCode e versionName.

O versionCode é um número inteiro usado pelo o sistema interno para saber se uma versão é mais recente que a outra. A norma é publicar uma app pela primeira vez com o valor 1, e somar 1 a cada nova versão lançada.

Já o versionName é o nome público da versão, que pode ser o que você quiser, como um nome ou um número. Por exemplo, as versões do Android têm nomes de doces (Android Lollipop), enquanto o Ubuntu é versionado por número (Ubuntu 14.04).

AndroidManifest.xml

 

Gerando um .apk para publicação

Uma vez que todas essas mudanças no código estão prontas, está na hora de gerar o .apk que vai ser disponibilizado para os usuários baixarem.

Para garantir a autenticidade do .apk, o Google Play exige que ele seja assinado por uma dupla de chaves pública-privada. O resultado é como se você gerasse um certificado digital para sua app.

A chave é um hash guardado num arquivo com a extensão .keystore. Tudo pode ser gerado pela ferramenta keytool. Para gerar essa chave, usamos o comando abaixo no terminal, modificando o [nomeDoArquivo] pelo nome que você quer no seu .keystore e o [apelido] por um nome que você queira usar para se referenciar a essa certificação digital:

$ keytool -genkey -v -keystore [nomeDoArquivo].keystore -alias [apelido] -keyalg RSA -keysize 2048 -validity 10000

Ele então vai pedir que você defina uma senha para acessar o arquivo, a keystore password e a confirme em seguida. Depois, ele pede várias informações como nome, empresa e local. Essas informações são opcionais e não afetam o nível de segurança do seu certificado.

No fim ele vai pedir outra senha, o key password. Essa senha é para o acesso à chave dentro do arquivo.

Keytool

Exemplo de geração do .keystore com o keytool

Com o certificado pronto, falta gerar nossa .apk certificada. O Android Studio permite fazer isso no menu Build > Generate Signed APK

Na janela que aparece, temos que passar as informações do certificado: o arquivo .keystore que contém a chave, o key store password para poder acessar o arquivo. O key alias é o apelido que você deu para o certificado e o key password que é a senha da chave. Depois clique em “Next”

Generate Signed APK

Na próxima janela, definimos a pasta onde queremos criar o arquivo .apk e escolhemos o “Build Type”. Como queremos criar uma .apk para publicação, selecione a opção “release”.

Pronto, seu .apk está pronto para ser enviado para o Google Play. Basta abrir a página “APK” no Developer Console e clicar no botão “Enviar o primeiro APK para produção”.

Enviar o primeiro APK para produção

 

Detalhes da App

Na página “detalhes do app”, precisamos definir as informações que vão aparecer na página do sua app na Google Play. O título, uma breve descrição e uma descrição completa tem que ser informados para cada idioma que você quer dar suporte.
Além disso é preciso subir um ícone em alta resolução, um gráfico de recursos e pelo menos dois screenshots da app.

Developer Console à esquerda, e o resultado na Play Store à direita

Developer Console à esquerda, e o resultado na Play Store à direita

No fim da página, definimos o tipo, (app ou jogo) e uma categoria. E, por fim, uma política de privacidade. A política de privacidade não é obrigatória, mas você deve marcar o checkbox para dizer que não vai ter uma.

Não se esqueça de salvar suas alterações clicando no botão “Salvar rascunho” no topo da página!

 

Classificação indicativa

O critério e os níveis de classificação indicativa variam bastante de país para país. Por isso, o Google facilita bastante nosso trabalho oferecendo um questionário para determinar a classificação da sua app nos diversos países de publicação. Basta responder a todas as perguntas que ele gera as classificações dos diversos países para você.

 

Preço e distribuição

Nessa tela, você deve definir o preço da sua app (ou se é gratuita). Em seguida, você seleciona os países onde a app vai der distribuída – pelo menos um país deve ser selecionado. E depois, se a app contém algum anúncio.

No fim da página, você deve consentir que sua app segue as diretrizes de conteúdo do Android e que  você aceita sua app estar sujeita às leis de exportação dos Estados Unidos, marcando as últimas duas opções da página.

 

Finalmente

Com tudo isso pronto, o nosso botão “Publicar app” vai finalmente ficar habilitado. Depois de mandar publicar a app, o Google Play apenas pede para esperar algumas horas para a publicação ser efetuada.

App publicada

45 Comentários

  1. Wallace Espindola 21/06/2016 at 09:28 #

    Excelente artigo André! Passo a passo nota 10!

  2. Edney Pitta 21/06/2016 at 10:08 #

    Muito bom André!
    Pensa em fazer um post assim para publicação na Apple Store? Seria de grande ajuda, já que é bem mais burocrático rs.
    Abraço!

  3. Raphael Lacerda 21/06/2016 at 15:19 #

    Andŕe.. blz? Excelente post!! Estou esta semana trabalhando justamente com isso. Estou montando um ambiente de integração contínua para Android.

    Estava justamente no passo de geração de apk’s assinadas a partir do gradle.

    Meu próximo passo agora é fazer o que vc fez, só que automatizado, ou seja, quero que o meu servidor de integração contínua faça o deploy na loja de aplicativo.

    Tem algum link sobre isso?

  4. André Verri 21/06/2016 at 16:30 #

    Obrigado, Edney!

    Eu não tenho experiência com iOS. Mas quando eu tiver, o post pode entrar nos planos. Também posso ver se alguém aqui na Caelum que já conhece do assunto topa escrever.

  5. André Verri 21/06/2016 at 16:36 #

    Raphael, nesse link mostra como configura as variávies de build no gradle.build:
    https://developer.android.com/studio/build/build-variants.html#signing

    também tem uma forma de fazer pelo Android Studio:
    https://developer.android.com/studio/publish/app-signing.html#sign-auto

  6. Marquinhus 21/06/2016 at 16:40 #

    Deco parabéns pelo post, cara bem completo e bem explicado que seja o primeiro de muitos. Abraço

  7. Anderson Andrade 27/06/2016 at 16:28 #

    Parabéns Deco sempre muito detalista e muito bem explicado!

  8. Fabio Do Couto Oliveira 27/06/2016 at 19:25 #

    Parabéns pelo post! Direto ao ponto, mas bem detalhado.

  9. Leonardo 27/06/2016 at 20:29 #

    Muito bom, estava procurando um post bem explicativo!

    Existe algum valor mensal ou é somente a taxa de 25 dólares?

    Abraços

  10. Deco Verri 27/06/2016 at 20:32 #

    Oi, Leonardo! É so a taxa de 25 dólares. Não tem mensalidade depois.

  11. Diego Rosa 13/07/2016 at 08:13 #

    Ótimo, grande ajuda!

    +1 para Apple Store!

  12. Fábio Aragão 13/07/2016 at 09:09 #

    Olá Deco, por acaso és professor em sala de aula ?? se positivo, creio que seus aluns devem querer que as aulas nunca acabem. A riqueza de detalhes e o passo a passo dão prazer em continuar lendo o artigo até o final.. cada ponto detalhado com maestria e convicção de quem realmente trabalha com o produto explicado, e não apenas aprendeu a fazer na internet alguma coisa e fez um artigo.
    Ainda não programo, estou estudando e já analiso a falta de professores com esta mesma didática em sala de aula.
    Parabéns.

  13. Leandro Takeda 14/07/2016 at 12:13 #

    Belo post que será usado por muitos na web! Congrats!

  14. Douglas 20/08/2016 at 10:23 #

    Parabéns pelo post! Muito bom! Gostaria de saber se ao escolher os países que quero disponibilizar, se há alguma restrição ou se posso por exemplo deixar o idioma em inglês e escolher para disponibilizar o App em todos os países.
    Muito obrigado.

  15. Deco Verri 20/08/2016 at 16:31 #

    Douglas, a as línguas que sua app dá suporte é independente dos países disponíveis. Por exemplo, você pode ter uma app apenas em inglês e deixá-la disponível no Brasil.
    E o legal é que depois o Developer Console tira estatísticas dos downloads para sugerir quais línguas são mais relevantes para você dar suporte primeiro.

  16. Alex Felipe 22/08/2016 at 17:03 #

    Deco, muito obrigado pelo post! A parte da chave foi a que me ajudou mais! Seria bem legal ter algum tipo de continuação falando sobre as versões que podemos fazer e para que cada uma server. Parabéns! 🙂

  17. Jonas 21/10/2016 at 11:29 #

    Excelente post!
    Foi de grande ajuda, Obrigado.

  18. Daniel 27/10/2016 at 14:24 #

    Olá

    Se o aplicativo que eu estou desenvolvendo tiver o mesmo nome de uma aplicativo já presente na playstore?
    Tem algum problema? Pois o nome que quero dar para meu app, já tem um de outro pais mas de um estilo diferente?

    No momento de cadastrar o nome o google vai checar se esse nome já existe?
    Obrigado

  19. Deco Verri 27/10/2016 at 14:48 #

    Oi, Daniel.

    A Play Store diferencia as apps pelo package. Por isso não podemos mudar o nome do package depois de publicar e porque é importante pensar num bom nome de package.

    A convenção do Java é que os nomes dos seus packages sejam únicos no mundo – geralmente usamos um domínio que seja nosso. Como o Android aproveita a linguagem Java, essa convenção garante que não haja conflito nas apps.

    Ou seja, se sua app tiver o mesmo nome mas package diferente você não vai ter problema.

  20. José Carlos Pelais 21/11/2016 at 09:18 #

    Olá Deco Verri.

    Venho pedir sua ajuda, pois já esgotei tudo meu cabedal sobre um problema com meu App. O que ocorre é o seguinte; fiz um (na realidade foram 2) na plataforma App Inventor e publiquei no Google Play. Posteriormente instalei o app no meu celular e pedi para vários amigos que também o fizessem. O aplicativo está devidamente instalado nos respectivos celulares, porém este não aparece na tela. Já recorri ao departamento de suporte da Google Play muitas vezes mas não retornam. Não sei mais o que fazer. Se puderes me dar uma luz, ficaria imensamente agradecido. Os nomes dos apps são PhotosAndPhotos e SeuAppDeCompras. Aguardo retorno.

  21. Deco Verri 29/11/2016 at 13:52 #

    Oi, José!

    Quando você faz uma app android precisa falar pra ele qual é a tela principal, ou seja, qual a tela que vai ser aberta quando se clica no ícone.
    O curioso é que podemos indicar várias “telas principais” e nesse caso o android cria um ícone no seu device para cada uma delas. Eu imagino que a sua app não tem nenhuma tela principal configurada, por isso o android não cria ícones quando você instala a app.

    Eu não tenho experiência com App Inventor. Normalmente indicamos a tela principal no AndroidManifest.xml colocando esse intent-filter dentro da tag da Activity que representa a tela principal:

     <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
    

    (No post tem uma imagem do AndroidManifest.xml da app que usei de exemplo, lá você pode ver esse código na prática)

  22. Franciele 20/01/2017 at 17:58 #

    Hoje tenho várias contas com aplicativos publicados na minha empresa, gostaria de unificar todos em apenas uma conta. É possível fazer isso? Como?

  23. daniela 25/01/2017 at 09:35 #

    Olá
    Estou tentando inserir o Gráfico de Recursos, já redimensionei várias imagens para a formatação exigida 1024 x 500, e mesmo assim não consigo subir nenhuma para o meu gráfico. Alguém tem alguma dica ou recurso para me ajudar?

  24. Olá, gostei da explicação, mas estou com uma dúvida. Vi um colega fazendo uma pergunta relativa, mas não o que eu desejava. Eu tenho aplicativos feitos no APP Inventor, mas estou passando para o Android Studio, você saberia se consigo aproveitar a chave do APP Inventor para o Android Studio, para que eu não perca os downloads que já tenho? No App Inventor tem uma parte de exportação da chave de segurança, mas quando coloco na Keu Store Path, ele da erro.

  25. Deco Verri 07/02/2017 at 19:59 #

    Oi, Daniela.
    Se você procurar no Google por “android feature graphic generator” com certeza vai encontrar alguma ferramenta para ajudar, a parte ruim é que você fica presa às funcionalidades da ferramenta.

  26. Deco Verri 07/02/2017 at 20:08 #

    Oi, Leonardo.
    Não tenho muita experiência com o App Inventor, mas sei que ele que cria seu arquivo .keystore e dá pra fazer o download dele. Depois é só uma questão de você saber as senhas e o alias do certificado, não deveria ter problema.
    Que tipo de erro aparece pra você?

  27. Deco Verri 07/02/2017 at 20:17 #

    Oi, Franciele
    Não consegui encontrar nada a respeito de unificar contas. Talvez esse seja o tipo de coisa que é melhor perguntar diretamente a eles, pois imagino que cada caso deve ser analisado separadamente nessa situação.

  28. silas 16/02/2017 at 12:23 #

    boa tarde amigo, tenho uma dúvida, publiquei um app no google play , dai aparece publicado … mas o problema é que procuro no play store e não encontro o app, sendo que foi publicado ontem, ja tem umas 15 horas… demora assim?
    desde ja obrigado

  29. Marcelo 24/02/2017 at 23:28 #

    Muito bom, mas tenho um problema, no meu cado fica apenas PRONTO PARA PUBLICAR, e não aparece a opção PUBLICAR, o que eu faço?

  30. Ramison 14/03/2017 at 22:02 #

    Opa deco..blz? Estou prestes a publicar um app mas nao sei como fazer .. pois ele é pago mas eu queria publicar tambem uma versao demo(gratis) .. tem problema eu publicar o mesmo app duas vezes? Uma versao demo e uma paga?

  31. otavio 18/03/2017 at 16:31 #

    Boa trde andre voce viu que mudou a forma de publicar no google voce sabe quanto tempo demora agora porque fica la o app em produção voce sabe o que significa isso agora

  32. Fabio 30/03/2017 at 17:57 #

    Alguem sabe me dizer porque só consigo achar meu app na playstore se digitar o nome dele todo…O app foi inserido na playstore recentemente

  33. willian 15/04/2017 at 23:14 #

    ola amigos meu app esta na play story ja postado mas ele não aparece quando escrevo o nome dele alguem poderia me ajudar ???????????

  34. Samuel SantÁna 02/05/2017 at 03:48 #

    Deco, não entendo nada de programação, mas sim de didáticas. Você foi muito expressivo para com as pessoas que desejam executar este tipo de trabalho.
    Minha curiosidade é: Tive um App, porém o mesmo estava em nome de minha hospedagem. Como eu tinha um determinado plano de streaming nesta hospedagem (revenda) e o troquei (usuário final), esta hospedagem, onde até hoje tenho o streaming, deletou meu App e disse que não poderá recolocar o nome de minha webradio com o mesmo nome mais, pois o Google Play não aceita.
    Isto é verdade ou posso contratar alguém para recriar meu App com o mesmo nome?
    Você já informou o preço que o Google cobra para a hospedagem e gostaria saber se você efetua este trabalho para mim e o valor que você cobra.
    Contata-me pelo email de cadastro, por favor

  35. Erick Amaral 09/05/2017 at 09:58 #

    Belíssimo post, parabéns.
    Bem, a minha dúvida, uma vez usuário, eu consigo selecionar quem tem acesso ao meu app, por exemplo, eu posso deixá-lo para teste apenas para um usuário? Se não existe uma outra ferramenta de publicação android que me permita selecionar quais usuários podem visualizar e baixar o meu app?

  36. Douglas 02/06/2017 at 10:11 #

    Eu publiquei o meu app na Google Play e já se passa 7 dias e o mesmo ainda não aparece no mecanismo de busca, isso é normal?

    Não encontro ele a traveis do celular só consigo baixar o app estando logado no meu gmail e baixando direto!

  37. Gabriel 04/08/2017 at 17:59 #

    O mesmo comando pode usado no Windows?

  38. John 10/08/2017 at 21:57 #

    Ótimo artigo!

    Perdoem minha ignorância mas legalmente falando, posso publicar um app pago sem ter uma empresa registrada e usar meu nome (PF)? Depois seria preciso declarar os ganhos no Imposto de Renda? Seria legal um artigo cobrindo isso. Já vi essa pergunta em outros lugares sem nenhuma resposta.

    Obrigado

  39. Eduardo Oazi 23/08/2017 at 17:08 #

    Boa tarde.
    Excelente explicação.
    Fiz tudo o que está no passo a passo e o app está publicado.
    Tenho duas duvidas:
    1.a – Tem como colocar palavras chaves para ser encontrado com mais facilidade na play store?
    2.a – Alguns aparelhos baixam e não instalam (compatibilidade). Tem como colocar pelo devenloper os aparelhos?

    Agradeço desde já.

  40. rauan 01/09/2017 at 11:51 #

    Bom dia na minha conta do google play store, posso publicar quantos app eu quiser?

  41. Luiz Antonio 08/11/2017 at 13:27 #

    Olá Deco parabéns pelo tutorial sou novo em programação android e criei um aplicativo de web radio de minha propria hospedagem streaming de webradio – nos botoes tem um botão com img de rede social, um de pedidos que vai para o link pagina html de form no site do app e um de skype para orientar aos meus webouvintes a adicionar o meu prefixo skype de contatos o botão contem tb a imagem do skype e na tela segunda tela aonde esta o player formato de imagem de um player de radio tem a informação do que esta tocando agora mas o meu servidor o da revenda como não disponibiliza o current song id do shoutcast eu preciso via objeto NavegadorWeb do app inventor chamar a pagina de minha propria hospedagem streaming para mostrar o que esta tocando agora – fiz um app com todos estes ingredientes e subi na playstore porém eles suspenderam a aplicação alegando um desacordo nas politicas de privacidade.Como sou iniciante gostaria se possivel a correção dos colegas já que se trata de um app de webradio – O que estou fazendo errado seria os icones de imagem do face e skype que eu coloquei nos botões enfim o que seria se precisar lhe passo um contato de meu email ou whats ou até um link para baixar o app e ver o que está errado em relação ao playstore para me corrigir caso possa desde já agradeço

  42. Jonathan 09/11/2017 at 21:43 #

    cara muito bom, mas tá desatualizado. os caras do google fizeram uma zona na playstore, sem necessidade. seria bacana atualizar esse artigo.

Deixe uma resposta