PublicaçãoPublicar nas lojas de apps

Projeto nativo

O projeto completo para celular, para anúncios, compras e um desenvolvedor que cuide dele.

O Native entrega o app inteiro como um projeto para celular, em um único ZIP ou enviado para um repositório do GitHub. Primeiro, dê a ele o nome do app e um ID de app como com.yourcompany.yourapp: o ID é como as lojas conhecem o seu app, e ele não pode mudar depois de publicado.

A janela então mostra os comandos exatos para compilá-lo, para Android e para iPhone:

text
npm install && npm run build
npx cap add android
npm run icons
npx cap sync && npx cap open android

No iPhone, ios ocupa o lugar de android, e o último comando abre o Xcode.

A partir daí, é o caminho das próprias lojas: assine o app no Android Studio ou no Xcode, envie, teste, preencha a página da loja e lance. Guarde bem a chave de assinatura do Android e as senhas dela. Toda atualização precisa ser assinada com a mesma chave. Sem Android Studio nem Mac, o GitHub pode compilar para você: Compilar na nuvem.

Obter o projeto: baixar ou GitHub

No passo 1, Download the project tem dois campos, App name e App ID. O ID começa como com.setherion. seguido do nome do app, e precisa estar escrito na forma de domínio invertido. Download project (.zip) gera um ZIP com o nome do app. Ele contém o projeto web, os arquivos do celular, um schema.sql se o app tiver tabelas, a arte do jogo, se houver, e as imagens do ícone e da tela de abertura. Exige um plano pago.

Como alternativa, or push to GitHub: conecte com Connect with GitHub ou cole um token, escolha um Repo name e clique em Export to GitHub. O repositório é criado como privado, e Open repo leva você até ele. Isso também exige um plano pago.

Native no Android, passo a passo
  1. Download the project, como acima.
  2. Compile. Precisa do Node 22 e do Android Studio. Execute os comandos que a janela mostra. Se o app usa anúncios ou compras, npm run native:setup é adicionado depois de npx cap add android.
  3. Assine. No Android Studio, escolha Build, depois Generate Signed App Bundle. Crie uma chave e guarde-a junto com as senhas: toda atualização precisa da mesma chave.
  4. Envie e teste. Crie o app no Play Console, envie o .aab para o Internal testing, depois preencha a página da loja, a classificação de conteúdo e o Data safety. Com anúncios, você também declara o ID de publicidade.
  5. Lance. A revisão leva de algumas horas a dois dias. Uma conta pessoal do Google Play aberta depois de novembro de 2023 precisa antes do teste fechado.
Native no iPhone, passo a passo
  1. Download the project: o mesmo ZIP do Android.
  2. Compile. Precisa de um Mac com Xcode e da conta de desenvolvedor Apple de $99 por ano. Execute os mesmos comandos com ios no lugar de android.
  3. Assine e envie. No Xcode, abra Signing & Capabilities e escolha a sua equipe. Com anúncios ou compras, adicione In-App Purchase. Depois Product, Archive, Distribute, para o App Store Connect.
  4. Teste no seu iPhone com o TestFlight.
  5. Preencha a página da loja e envie para revisão. Com anúncios, a Apple os conta como rastreamento.

Compilar na nuvem

Sem Android Studio e sem Mac: o GitHub pode compilar o app nos próprios computadores. Envie o projeto para o GitHub no passo 1 e o repositório recebe dois workflows de compilação, um para Android e outro para o iPhone. O passo Build it mostra então Build it in the cloud, com um botão para a página do workflow no GitHub.

No GitHub abra Actions, escolha Android build ou iPhone build, clique em Run workflow e escolha o que compilar:

WorkflowOpçãoO que você recebe
Android buildTest APKUm app para instalar no seu próprio celular, nos Artifacts da execução. Nada para configurar.
Android buildMake a new keyA chave de assinatura, criada uma vez antes do seu primeiro envio ao Google Play. Só em um repositório privado.
Android buildGoogle Play bundle (.aab)O arquivo assinado para o Play Console, com um número de versão maior a cada execução.
iPhone buildCheck that it buildsA prova de que o app compila para o iPhone. Não precisa de conta da Apple.
iPhone buildTestFlightO app assinado e enviado ao App Store Connect, para instalar com o TestFlight.

Um repositório privado tem 2.000 minutos grátis por mês nos computadores do GitHub. Uma compilação Android usa poucos deles, e o GitHub conta um minuto de Mac como dez. O README do repositório explica cada passo.

Antes do primeiro Google Play bundle
  1. Execute Make a new key e baixe upload-key da execução.
  2. Guarde upload.jks e a senha em um lugar seguro, fora do repositório. Toda atualização precisa ser assinada com a mesma chave.
  3. No repositório abra Settings, Secrets and variables, Actions e adicione três secrets, cada um com o texto do seu arquivo: ANDROID_KEYSTORE_BASE64, ANDROID_KEYSTORE_PASSWORD e ANDROID_KEY_ALIAS.
  4. Execute Google Play bundle (.aab) e envie o arquivo para Internal testing no Play Console.
Antes da primeira compilação para o TestFlight
  1. No App Store Connect crie o app, com o mesmo ID do passo 1.
  2. Em Users and Access, Integrations, App Store Connect API, gere uma chave com a função Admin e baixe o arquivo .p8 dela. A Apple só deixa baixar uma vez.
  3. No repositório adicione quatro secrets: APPLE_TEAM_ID (Membership details em developer.apple.com), ASC_KEY_ID, ASC_ISSUER_ID e ASC_KEY_P8, o texto do arquivo .p8.
  4. Execute TestFlight. Alguns minutos depois, a compilação está no App Store Connect, em TestFlight. O workflow informa à Apple que o app usa só criptografia padrão, então o TestFlight não pergunta sobre isso.

Uma conexão com o GitHub feita antes da compilação na nuvem não consegue adicionar os workflows: o passo avisa, e Reconnect no passo 1 resolve.

Contas no app de celular

No app de celular, as pessoas entram com e-mail e senha. O botão do Google e o link de login enviado por e-mail se escondem ali. É por isso que a verificação do Delete account button importa: a Apple recusa um app em que as pessoas podem se cadastrar sem ele.

Anúncios e compras

Um jogo que mostra anúncios ou vende alguma coisa funciona de verdade só no projeto Native: anúncios do Google AdMob, compras das lojas pelo RevenueCat. Na pré-visualização do editor eles são de mentira (“Test ad”, “Test purchase”, nenhum dinheiro é cobrado), então você pode testá-los, e no site publicado ficam escondidos. No caminho fácil, o jogo roda sem eles.

O projeto começa com os anúncios de teste do Google, que não pagam nada. Coloque seus próprios IDs de anúncio e chaves das lojas em src/monetize.keys.json e execute npm run native:setup: o README do projeto diz de onde vem cada um.

O que vai no arquivo de chaves

O arquivo contém o ID do app no AdMob e os IDs das unidades de anúncio premiado e intersticial para Android e iPhone, e as chaves do RevenueCat de cada loja (começando com goog_ para Android e appl_ para iPhone). Sem as chaves do RevenueCat, ou sem produtos, nada é vendido.

Para anúncios reais, crie a conta, os apps e as unidades de anúncio no AdMob, coloque os IDs no arquivo, execute npm run native:setup em pastas nativas novas e publique um arquivo app-ads.txt no site. Para compras, crie os produtos no Play Console e no App Store Connect com os mesmos IDs de src/monetize.json e conecte as duas lojas em um projeto do RevenueCat. No iPhone, adicione a capability In-App Purchase.

As duas lojas querem um link para a política de privacidade, e um botão Restore purchases é obrigatório: o projeto fornece um. Entre os anúncios, o app pula um intersticial nos primeiros 30 segundos, em até 60 segundos do último e para um jogador que comprou o produto que remove os anúncios.

Esta página foi útil?

Entre na comunidade

Perguntas, ideias e o que outras pessoas estão criando.