· Publicação · 6 min de leitura

Publicando sua ficha da App Store sem fastlane

Publicando sua ficha da App Store sem fastlane
TL;DR. O deliver e o supply do fastlane enviam seus metadados, capturas de tela e binário para as duas lojas direto da linha de comando — gratuito, open source e sempre atualizado se você integrar ao CI. O custo é que alguém precisa construir e manter esse pipeline: Ruby, Xcode ou Gradle, um Fastfile e manutenção de testes de UI. Se você preferir não rodar um pipeline, os caminhos sem código são os consoles web das lojas, as APIs das lojas diretamente, ou uma ferramenta que redige a ficha para você. O Mokbi é o caminho sem código que realmente publica: ele desenha suas capturas de tela e o feature graphic, escreve e traduz a ficha inteira para 50 idiomas, e envia direto para o Google Play pela Play Developer API enquanto prepara a versão da App Store na App Store Connect para você enviar. Sem Ruby, sem Xcode, sem testes de UI.

O fastlane é a resposta padrão por um bom motivo. É um kit de ferramentas gratuito, licenciado sob MIT, e sua ação deliver (também chamada upload_to_app_store) envia capturas de tela, vídeos de App Preview, metadados e o binário para a App Store Connect em um único comando. No lado Android, o supply (também chamado upload_to_play_store) faz o mesmo para o Google Play — metadados, capturas de tela e o APK ou app bundle. Rode qualquer um deles a partir do CI e sua ficha se regenera a cada lançamento, nunca ficando desatualizada em relação ao app.

Então a pergunta honesta não é "o fastlane é bom" — é. A pergunta é se você quer ser o dono do pipeline que o torna bom, ou se prefere atualizar uma ficha sem um.

O que o deliver e o supply realmente fazem

Ambos são wrappers em torno das APIs oficiais das lojas. Nos bastidores, o fastlane faz exatamente as mesmas chamadas que você poderia fazer sozinho.

  • deliver (iOS). Envia nome do app, descrição, palavras-chave, notas de versão, URLs, categorias e informações de revisão, além de capturas de tela e vídeos de preview localizados. O binário sobe pelo iTMSTransporter da Apple; os metadados passam pela API da App Store Connect. Também pode enviar para revisão após o upload.
  • supply (Android). Envia metadados, capturas de tela e o APK ou AAB para o Google Play, escolhendo uma track e promovendo builds. Atenção à pegadinha: as capturas de tela enviadas substituem as existentes de um idioma em vez de se somarem a elas.

Ambos autenticam com chaves de API — uma chave de API da App Store Connect para a Apple, um JSON de conta de serviço para o Google — então, uma vez configurados, rodam sem supervisão no CI. É essa a graça toda: metadados e capturas de tela como código, versionados no seu repositório, enviados a cada build.

O custo real do fastlane

O fastlane é grátis para instalar e grátis para rodar. O custo é a configuração e a manutenção, e ele é pago em tempo de engenharia.

  • Um runtime para manter. O fastlane é um toolchain Ruby (Ruby 3.0+), geralmente gerenciado com Bundler. O trabalho no iOS precisa do Xcode em um Mac; o Android precisa do lado do Gradle. É máquina de verdade para instalar e manter atualizada.
  • Arquivos de configuração para escrever. Um Fastfile define suas lanes; um Deliverfile ou a pasta de metadados do Android guarda os detalhes da ficha. Acertar a primeira versão funcional costuma levar um dia ou dois.
  • Um CI para colocar de pé. A automação só compensa dentro de um pipeline, o que significa chaves de API, segredos de assinatura e um runner de build configurado e mantido funcionando.
  • Manutenção da captura de telas, se você usar. O snapshot do fastlane conduz testes de UI no simulador para capturar telas por idioma. Esses testes são frágeis: um relato comum é que uma configuração funciona bem por alguns meses, aí uma mudança de UI quebra o fluxo e o código do teste precisa ser reescrito para os novos estados. O snapshot repete execuções instáveis por padrão, o que disfarça o não-determinismo causado por rede e dados em vez de corrigi-lo. E a saída bruta não tem legendas nem fundos — as equipes costumam finalizar o design em outra ferramenta de qualquer forma.

Nada disso é uma crítica à ferramenta. É a troca honesta: o fastlane converte uma tarefa manual recorrente em código, e em troca você mantém código. Para uma equipe que lança semanalmente com um engenheiro dono da automação de lançamento, é um ótimo negócio. Para um desenvolvedor solo ou um PM que atualiza uma ficha algumas vezes por ano, o pipeline pode custar mais para manter vivo do que economiza.

Atualizando uma ficha sem fastlane

Se você pular o fastlane, ainda tem três formas de colocar metadados e capturas de tela nas lojas.

1. Os consoles web das lojas

O caminho mais simples. Na App Store Connect você edita cada localização à mão e coloca as capturas de tela nos espaços de cada tamanho de tela; no Google Play Console você edita a ficha da loja por idioma e envia as capturas lá. Sem código, sem chaves, nada para manter — você só clica. A desvantagem é que é totalmente manual, e fazer isso em muitos idiomas, uma tela por vez, é lento e sujeito a erros. Ótimo para um ou dois idiomas; doloroso em 20.

2. As APIs das lojas, diretamente

As duas lojas expõem as mesmas APIs que o fastlane chama, então você pode escrever integrações que as chamam diretamente sem adotar o stack Ruby do fastlane. A API da App Store Connect da Apple é uma API REST autenticada com um JWT de curta duração (ES256, assinado com sua chave), com endpoints para criar conjuntos de capturas de tela, reservar e enviar bytes de imagem e corrigir metadados. A Play Developer API do Google usa um modelo de "edits" — você abre uma edição, altera fichas e imagens, depois confirma. Isso te dá controle total e se encaixa em um painel interno personalizado, mas agora você está escrevendo e mantendo essa integração sozinho. É um compromisso menor do que um pipeline fastlane completo, mas não é zero.

3. Uma ferramenta gerenciada que redige a ficha

A outra rota sem código é uma ferramenta que produz a ficha para você, restando apenas colocá-la na loja. É aqui que a equação se inverte: em vez de um engenheiro dono de um pipeline, um PM ou designer fica dono da ficha diretamente no navegador. Você troca a automação de CI por não precisar de um engenheiro.

Onde o Mokbi se encaixa — com sinceridade

O Mokbi não tenta substituir a história de CI do fastlane. Se seu objetivo é ter capturas de tela que se regeneram a cada build sem nenhum humano no meio, um pipeline fastlane é a ferramenta certa e é grátis. Somos para o outro caso: a pessoa que quer publicar uma ficha caprichada sem mexer em Ruby, Xcode, um Fastfile ou um teste de UI.

No navegador você desenha as capturas de tela, redige o texto da loja e traduz a ficha inteira para 50 idiomas — sem simulador, sem CI, sem código. Um designer ou PM pode ser dono de toda a superfície de marketing, do início ao fim.

Aqui está a última milha, e o Mokbi cobre ela. Ele desenha as capturas de tela e o feature graphic, escreve e traduz a ficha inteira para 50 idiomas, depois envia o resultado direto para o Google Play pela Play Developer API e prepara a versão da App Store na App Store Connect, pronta para você apertar Enviar — a Apple exige esse Enviar final e a própria revisão, uma regra da Apple, não uma lacuna nossa. Os mesmos endpoints que o fastlane usa, menos o pipeline.

Quando escolher qual

  • Lança toda semana, tem um engenheiro, quer zero divergência? Fastlane. É grátis, é automatizado e mantém capturas de tela e metadados sincronizados com o app. Nada aqui supera isso.
  • Atualiza uma ficha algumas vezes por ano, sem CI de sobra? O console web, ou uma ferramenta que redige a ficha. A manutenção do pipeline não vale a pena nesse ritmo.
  • Precisa de controle programático mas não do stack do fastlane? Chame as APIs da App Store Connect e do Play Developer diretamente.
  • Quer que um designer ou PM seja dono da ficha em vários idiomas? Redija, traduza e publique pelo navegador — o Mokbi envia para o Google Play e prepara a versão da App Store pronta para você enviar.

O fastlane merece seu lugar como o incumbente gratuito e automatizado. O caminho sem código não é "melhor" — é uma troca diferente: você abre mão da automação de CI, e em troca ninguém precisa construir ou cuidar de um pipeline para atualizar uma ficha.

O que ler a seguir

Abrir o editor →