Guia

Conecte suas contas do App Store e do Google Play.

TL;DR. Para deixar o Mokbi publicar por você, você conecta duas coisas uma vez: uma chave de service account do Google Cloud (um arquivo JSON) para o Google Play, e uma chave de API do App Store Connect (um arquivo .p8 mais um Key ID e um Issuer ID) para a Apple. As chaves são a parte fácil. A etapa que trava quase todo mundo é conceder o acesso no lugar certo, porque o Google Cloud IAM e o Play Console são dois sistemas de permissão separados. Este guia percorre as duas configurações do início ao fim e lista as correções exatas para os erros mais comuns.

O que você vai precisar

O Mokbi nunca vê a senha da sua loja. Em vez disso, você cria uma chave com escopo limitado para cada loja e cola essa chave uma única vez. Ela é verificada com a loja, armazenada de forma criptografada, e você pode desconectá-la a qualquer momento.

  • Google Play: uma service account key do Google Cloud, baixada como um arquivo JSON, de um projeto com a Google Play Android Developer API ativada, além dessa service account convidada no seu Play Console.
  • App Store Connect: uma chave de API, baixada como um arquivo .p8, além do seu Key ID e do Issuer ID da sua equipe.

Você só faz isso uma vez por loja. Depois disso, publicar e republicar é um único clique. Comece pelo Google, que é mais complexo.

Google Play, parte 1: criar a service account key

Isso acontece no Google Cloud Console (console.cloud.google.com).

  1. Crie ou escolha um projeto, por exemplo "Mokbi Publisher".
  2. Vá em APIs & Services → Library, procure por Google Play Android Developer API e clique em Enable.
  3. Vá em APIs & Services → Credentials → Create credentials → Service account. Dê a ela um nome como mokbi-play-publisher. Você pode deixar os papéis do projeto em branco — as permissões reais vêm do Play Console, na parte 2.
  4. Abra a service account, vá para a aba Keys, depois Add key → Create new key → JSON, e baixe o arquivo. Esse JSON é o que você cola no Mokbi. O client_email dentro dele (termina em .iam.gserviceaccount.com) é o endereço que você convida na próxima etapa, então guarde-o à mão.

Apareceu "Service account key creation is disabled"? Isso é uma política de organização do Google chamada iam.disableServiceAccountKeyCreation, ativada por padrão em "Secure by Default". Desative-a para este projeto: IAM & Admin → Organization Policies, encontre Disable service account key creation, escolha Manage policy, selecione "Override parent's policy", defina Enforcement: Off com escopo neste projeto, e Save. Espere alguns minutos e tente a chave de novo. Você precisa do papel Organization Policy Administrator, que um dono da organização tem ou pode conceder.

Google Play, parte 2: conceder acesso no Play Console

Esta é a etapa que custa horas às pessoas, então leia com atenção. O acesso ao seu app é concedido apenas no Google Play Console (play.google.com/console), nunca no Google Cloud IAM. Há dois lugares para conferir:

  1. Setup → API access: confirme que o projeto do Google Cloud que contém sua service account está linked aqui. Sem esse vínculo, a chave consegue se autenticar, mas recebe um 403 em todos os apps.
  2. Users and permissions (na parte de baixo da coluna esquerda, em nível de conta): escolha Invite new users, cole o e-mail da service account (o que termina em .iam.gserviceaccount.com), depois, em App permissions, adicione seu app e conceda pelo menos Manage store presence. Essa única permissão de app já é suficiente para publicar texto da ficha e capturas de tela — você não precisa do Admin em nível de conta.

Seu app já precisa existir no Play Console. A API da ficha edita um pacote existente, ela não cria um app novo, e nenhum APK ou AAB precisa ser enviado ainda. Confirme que o nome do pacote que você insere no Mokbi corresponde exatamente ao app.

A pegadinha número um: Cloud IAM não é o Play Console

Se você continua recebendo PERMISSION_DENIED, quase sempre é por isso. O Google Cloud IAM (a página IAM & Admin → IAM no Cloud Console, onde você atribui "papéis" à service account) controla o acesso aos recursos do Google Cloud. Ele não faz nada pelo acesso à ficha da loja do seu app. Atribuir papéis ali nunca vai corrigir um erro de permissão de loja.

O acesso ao app vive inteiramente no Play Console, nos dois lugares acima: o vínculo de API access e o convite de Users and permissions. Configure os dois, e a mesma chave que retornava 403 passa a funcionar.

Apple: criar uma chave de API do App Store Connect

Isso acontece no App Store Connect (appstoreconnect.apple.com). O Mokbi pede três coisas: o conteúdo do .p8, o Key ID e o Issuer ID.

  1. Vá em Users and Access → Integrations → App Store Connect API. Essa seção só é visível para o Account Holder da sua equipe ou um Admin. Se for solicitado, permita team keys.
  2. Clique em Generate API Key, dê um nome a ela (por exemplo, "Mokbi Publisher") e atribua a função App Manager.
  3. Baixe o arquivo .p8. Você só pode baixá-lo uma única vez, então guarde-o em um lugar seguro. Anote o Key ID mostrado ao lado da chave, e o Issuer ID, o UUID no topo da página Keys.

Assim como no Google, o app já precisa existir no App Store Connect. A API edita uma ficha existente e nenhum build precisa ser enviado. A publicação pelo Mokbi prepara a versão para você e interrompe antes do envio para revisão, então você mesmo aperta o Submit no App Store Connect quando estiver pronto.

Conectar no Mokbi

Abra um projeto, vá para a etapa Publicar, e use os botões de conexão:

  • Conectar Google Play: cole o JSON completo da service account e depois Verificar e conectar. Digite o nome do pacote e rode Testar conexão antes de publicar.
  • Conectar App Store Connect: abra o arquivo .p8 em um editor de texto e cole o conteúdo, adicione o Key ID e o Issuer ID, depois Verificar e conectar.

Cada chave é verificada com a loja antes de qualquer coisa ser salva, fica armazenada de forma criptografada no nosso cofre, e pode ser removida a qualquer momento com Desconectar.

Problemas comuns e como corrigi-los

"Service account key creation is disabled." Uma política da organização está bloqueando chaves JSON. Desative iam.disableServiceAccountKeyCreation para o projeto (veja Google Play, parte 1), espere dois minutos e tente de novo.

PERMISSION_DENIED ou 403 em todos os apps. O acesso não está configurado no Play Console. Confirme que o projeto do Cloud está vinculado em Setup → API access, e que o e-mail da service account foi convidado em Users and permissions com Manage store presence no seu app. Papéis no Cloud IAM não contam.

Ainda falha logo depois de você conceder acesso. Mudanças de permissão levam alguns minutos para se propagar. Salve novamente a permissão no Play Console (abra e salve de novo) ou espere um pouco, depois rode o Testar conexão mais uma vez. Como teste rápido de isolamento, conceder à service account o Admin em nível de conta temporariamente deve fazer o teste passar — se passar, a falha anterior era uma questão de escopo do app ou de vínculo do projeto.

App errado, ou nada acontece. O nome do pacote no Mokbi precisa corresponder exatamente ao app no Play Console, e o app já precisa existir nos dois consoles. A API da ficha edita um app existente, ela nunca cria um.

Perdeu seu arquivo .p8. A Apple só permite baixá-lo uma vez. Se ele sumiu, revogue essa chave no App Store Connect e gere uma nova, depois reconecte no Mokbi.

Conecte suas lojas → Veja como funciona publicar