### Guia de Deploy na Play Store para Aplicativos React-native #### Requisitos e informações necessárias ##### Setup Mobile Completo * Setup de mobile configurado e funcional * npm 6.13.4+ * node 13+ * Conta do Cliente na Google Play Console * Keytool * Banner do Aplicativo * Pelo menos 3 Prints do app * Breve descrição de até 80 caractéres (sobre o app) * Descrição Completa de até 4000 caractéres (sobre o app) * Email do cliente * Número do cliente ##### Exemplo de Banner <img src="https://i.imgur.com/7xxDRvP.png" width="80%" alt="UTI Neonatal"> #### Introdução Esse é o guia de Lançamento de um aplicativo mobile na Play Store. É muito importante que você guarde em um local seguro a chave que criaremos aqui, de preferência no Git ou algum lugar onde essa chave nunca será perdida, pois ela será usada para as atualizações futuras. #### 1. Criação do App no Google Play Console Logo que entramos na primeira página conseguimos encontrar um botão escrito "Criar App", clique nele e preencha as informações necessárias. ![Criar App](https://i.imgur.com/IlOC47q.png) #### Painel de Aplicativo Há uma aba no lado esquerdo do Google Play Console chamada "Painel", essa aba existe para cada aplicativo, e tem o objetivo de nos auxiliar no nosso caminho até o deploy do aplicativo. ##### 1.1 Configurando o App para lançamento Siga as tarefas para Configurar o App que o próprio Google nos indica. <img src="https://i.imgur.com/4pOvCyi.png" width="80%" alt="Configurar App"> Agora que já temos o App configurado na Google Play nós podemos passar para a criação do bundle e a sua assinatura. #### 2. Instalando e assinando o aplicativo Baixe o aplicativo normalmente pelo e baixe também suas dependências com o Yarn ou npm se for o caso. ##### 2.1 Gerando nossa chave !importante Agora criaremos nossa tão importante chave, para isso, usarei nomes padrões, que provavelmente nunca seriam esquecidos, por favor, anote as senhas e alias que você colocar aqui. Rode o comando: ``` keytool -genkey -v -keystore nome-do-projeto.keystore -alias projeto-alias -keyalg RSA -keysize 2048 -validity 10000 ``` Esse comando fará com que rodem algumas perguntas onde definiremos senhas e alias que serão usados depois, preencha com os dados necessários, e pronto, temos nossa chave de assinatura. ##### 2.2 Gerando o bundle Assinado Agora precisamos criar o bundle e assina-lo, para isso, nada melhor que usar o próprio Gradlew. Entre na pasta inicial do projeto, e procure o arquivo dentro da pasta android/app/ chamado: "build.gradle" é importante que seja esse arquivo e não o build.gradle da pasta android. Abra esse arquivo em um editor de texto e agora iremos alterar algumas coisas nele Primeiramente vá no seguinte escopo: ```java=1 defaultConfig { applicationId "com.utineonatal" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" } ``` Nesse momento ainda não iremos alterar nada dele, mas é bom esclarecer que é nessa parte em que definimos as versões do aplicativo, se você colocar uma versão errada, a Play Store não ira aceitar o seu aplicativo. Prosseguindo, desça um pouco o arquivo e procure pelo seguinte escopo: ```java=1 signingConfigs { debug { storeFile file('debug.keystore') storePassword 'android' keyAlias 'androiddebugkey' keyPassword 'android' } } ``` Altere esse escopo para a seguinte maneira e coloque as informações necessárias, as mesmas que você criou no passo anterior. É importante que a chave criada esteja na mesma pasta que o arquivo build.gradle: ```java=1 signingConfigs { release { storeFile file('projeto.keystore') storePassword 'senha1' keyAlias 'alias-projeto' keyPassword 'senha2' } } ``` Feito isso, resta apenas mais uma alteração nesse arquivo, procure pelo seguinte escopo: ```java=1 buildTypes { debug { signingConfig signingConfigs.debug } release { // Caution! In production, you need to generate your own keystore file. // see https://facebook.github.io/react-native/docs/signed-apk-android. signingConfig signingConfigs.debug minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } ``` Altere ele para que ele fique dessa maneira: ```java=1 buildTypes { release { // Caution! In production, you need to generate your own keystore file. // see https://facebook.github.io/react-native/docs/signed-apk-android. signingConfig signingConfigs.release minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } ``` Salve e feche o arquivo. ##### 2.3 Bisbilhotando o arquivo de versionamento de Sdk Volte para o início do projeto e va para a passa android, dentro dessa pasta há o outro arquivo build.gradle que eu havia comentado. É possível que você em algum momento tenha que alterar alguma configuração do sdk, por isso, abra esse arquivo em um editor de texto e procure pelo seguinte escopo: ```java=1 ext { buildToolsVersion = "28.0.3" minSdkVersion = 16 compileSdkVersion = 28 targetSdkVersion = 28 } ``` Aqui é possível alterar algumas versões de sdk, altere o "targetSdkVersion" para 29. Feito isso, pronto, o Bundle está pronto para ser gerado. ##### 2.4 Gerando o Bundle de fato Volte para a pasta inicial do projeto e então vá para a pasta "android", nessa pasta rode o seguinte comando: ```shell=1 ./gradlew bundleRelease ``` Após isso, o bundle está gerado e assinado, ele fica salvo na pasta "/projeto/android/app/build/outputs/bundle/release" . #### 3. Publicando o aplicativo Volte para a Play->Painel do app e procure por "Publicar o app no Google Play" <img src="https://i.imgur.com/ga5550Q.png" width="80%" alt="Publicar app"> Preencha o que for necessário e então envie o seu aplicativo para avaliação da Google Play Console, essa avaliação costuma durar cerca de 3-5 dias úteis no momento de criação desse guia.