Abrindo o capital: duas lojas, duas rejeições, zero calma

O diário de lançamento · 29 de setembro de 2026 · 20 min de leitura

English Deutsch Español Français 中文 Italiano 日本語 한국어 Русский Türkçe Polski Nederlands Bahasa Indonesia

O Moneyflow já está na App Store e no Google Play. Adoraríamos dizer que foi tranquilo. Não foi. No caminho, colecionamos duas rejeições da Apple, ensinamos um script de build a dizer não, descobrimos que uma Lambo sempre foi uma bandeira quadriculada e corrigimos um bug que o Google deixou passar e a Apple não.

Esta é a história completa, montada a partir das nossas notas de versão, dos nossos runbooks e das mensagens de commit que escrevemos com pressa. É longa, é meio atrevida, e se você está prestes a lançar o seu próprio app, ela traz conselhos de verdade. Pegue um café, ou um pequeno empréstimo com os seus ativos como garantia.

Baixar na App Store Baixar no Google Play

A versão curta, em datas

  1. A versão 1.2.8 entra no ar no Google Play. O anúncio sai naquela noite, em seis idiomas.
  2. O iOS alcança o Android na 1.2.8, depois de resgatarmos uma tela de abertura que ninguém conseguia ler.
  3. O primeiro envio vai para a Apple sem as compras no aplicativo. O segundo vai com as 39. A primeira resposta da Apple: Information Needed.
  4. Uma faxina de marcas registradas, e a build 31 para devolver ao app uma chave que faltava.
  5. Rejeição dois, vinda de um iPad: os dois botões de login mostram um erro, e o revisor não encontra a Loja.
  6. O culpado é um parâmetro faltando. O Android o vinha perdoando em silêncio o tempo todo.
  7. Build 34, assinada direito. O Sign in with Apple finalmente funciona.
  8. A versão 1.2.9 chega ao Google Play.
  9. Os jogadores dizem que os celulares estão esquentando. Fazemos o jogo parar com isso.
  10. Cinco versões num fim de semana, da 1.2.10 à 1.3.1.
  11. O link da App Store entra na nossa página inicial. Você está aqui.

Pré-IPO: um jogo de navegador com medo de compromisso

O Moneyflow nasceu como um jogo de navegador. Você escolhe um personagem com emprego de verdade, contas de verdade e salário de verdade, rola os dados e tenta construir renda passiva suficiente para escapar das 9 às 5 e pagar por dois sonhos. Realizar os dois é a única forma de vencer, tanto no modo solo quanto no multijogador. Também há um casamento, um acordo pré-nupcial e um divórcio, e já chegaremos a eles.

Aí decidimos que ele pertencia ao seu celular e descobrimos que uma loja de apps é um jogo completamente diferente. Sem dados, sem cartas, só formulários, questionários e uma banca que sempre ganha. Já contamos a papelada do Google Play antes, em Como colocar o Moneyflow na Google Play Store. Esta é a continuação: o que aconteceu depois, nas duas lojas, e o que diríamos a nós mesmos se pudéssemos voltar no tempo.

Primeiro round: o Google Play diz sim (depois de pedir tudo)

O Google Play foi primeiro e se comportou como um banco quando você pede uma hipoteca: simpático, minucioso e ansioso para ver todo documento que você tem. O formulário de Segurança dos dados, a classificação indicativa, a página de exclusão de conta, o período de teste fechado. O post anterior cobre tudo isso, então aqui vai o que mudamos depois que a primeira listagem ficou pronta.

Paramos de clicar. As 39 compras no aplicativo (18 peões, 14 skins de dados, 4 temas de tabuleiro e 3 pacotes, todas cosméticas) foram criadas por script em vez de à mão, com o RevenueCat entre o app e as duas lojas para que a lógica de compra seja a mesma em todo lugar. As versões também passam pela Android Publisher API. Um script abre uma edição, envia o bundle, atribui a faixa e faz o commit, e se qualquer etapa falha ele apaga a edição, então uma execução falha não deixa nada para trás. É a coisa mais arrumada de toda esta história.

O Play tem suas manias. Ele recusa qualquer número de build que já tenha visto, inclusive os que você enviou e nunca lançou, então os números de build se comportam como dinheiro no jogo: gastou um, acabou, tenha você levado alguma coisa ou não. Também temos duas contas de serviço, e só uma delas pode publicar. A outra consegue abrir uma edição, enviar um bundle inteiro, atribuí-lo a uma faixa e depois receber um 403 no último passo. Todo aquele esforço, e um "não" firme com o bolo já na mesa.

Em 7 de setembro a versão 1.2.8 entrou no ar. Naquela noite publicamos o anúncio em seis idiomas, porque se você vai se empolgar em público, pode muito bem fazer isso também em alemão, espanhol, francês, português e chinês.

O Google Play disse sim. A Apple tinha outras ideias.

Segundo round: a Apple se faz de difícil

Enquanto o Android disparava, o iOS continuava estacionado na versão 1.2.1 no App Store Connect. Em 10 de setembro ele o alcançou: versão 1.2.8, build 30, dez capturas de tela novas e texto promocional em oito idiomas. Antes de tudo isso houve a questão menor do contrato Paid Apps. A Apple não deixa você criar nem uma única compra no aplicativo até você aceitá-lo e informar os seus dados bancários e fiscais. Até lá, toda tentativa devolve um 409, que é o jeito da Apple de dizer "ainda não, e só depois de eu ver a sua papelada".

Aí automatizamos as 39 compras pela API do App Store Connect. A primeira execução falhou em 24 delas com UNEXPECTED_ERROR. Rodamos de novo e saiu limpo. O runbook agora contém a frase mais zen do repositório: rode de novo em vez de depurar.

A tela de abertura que não era

Num celular de verdade, a nossa tela de abertura era ilegível, por dois motivos separados. O storyboard preenchia a tela com uma arte quadrada, então num celular alto ela era ampliada até a altura caber e cortava cerca de 54% da largura. O logotipo e toda a moldura decorativa saíam pela borda. Pior, as versões em modo escuro eram só a figura solta, em cerca de 5% de uma tela creme, ou seja, um logotipo invisível em todo celular configurado para o escuro.

Passamos a encaixar a arte dentro da tela, no seu próprio fundo creme, eliminamos as variantes escuras e colocamos o conjunto do logotipo em 88% da tela. A pasta de imagens encolheu de 55 MB para 9,1 MB. Uma primeira impressão não deveria pesar 55 MB.

Como enviar um app cuja Loja não vende nada

Aqui vai uma armadilha com excelente camuflagem. As compras no aplicativo são itens de revisão separados, e a Apple não revisa um que não esteja no seu envio. Na primeira vez que enviamos, o app entrou em revisão com os 39 produtos largados em "Ready to Submit". Se tivesse sido aprovado, teríamos lançado um jogo sobre comprar e vender cuja Loja não conseguia vender nada. Puxá-lo de volta nos custou um Remove from Review e o nosso lugar na fila.

A armadilha é que a Apple deixa você começar um envio em rascunho a partir da página de Compras no aplicativo que nunca poderá ser enviado. Sem nenhuma versão do app nele, todo produto falha ao ser adicionado com "Unable to Add for Review", e enviar o rascunho falha com "add an app version for the selected platform". Nenhuma das mensagens diz que a versão precisa entrar primeiro. Tentamos automatizar a correção, naturalmente. A API não tem nenhuma relação de compra no aplicativo com um envio. Tentamos três grafias antes de aceitar que essa porta é só pela interface, e o runbook agora diz isso, com educação, para que ninguém tente de novo.

O número que finalmente nos deixou felizes foi quarenta: uma versão do app, mais trinta e nove coisas para comprar nela.

Rejeição número um: a Apple quer conhecer você melhor

Em 11 de setembro a Apple respondeu. O assunto era Guideline 2.1, Information Needed. Não era um bug, uma falha ou uma violação. A Apple não relatou nenhum defeito. Era o questionário que a Apple manda a contas com pouco histórico de revisão, e veio com a exigência de uma gravação de tela. Pense nisso menos como uma rejeição e mais como uma checagem de antecedentes.

A lista tinha sete pontos: uma gravação de tela, para que serve o app e para quem, como entrar e testar tudo, quais serviços externos ele usa, se algo muda por região, se ele é regulamentado ou construído sobre o material de terceiros, e como funcionam as compras. Eram perguntas razoáveis, do jeito que as perguntas de um primeiro encontro são razoáveis. A Resolution Center limita uma resposta a 4.000 caracteres e a nossa deu 3.917, que é a coisa mais longa que já dissemos a alguém que tínhamos acabado de conhecer.

Aí a gravação. A Apple queria o fluxo real, na velocidade real, num celular real: uma abertura a frio, uma partida solo, a Loja e a sua tela de compra, o cadastro, o login, um lobby de multijogador e a exclusão da conta de novo. Quatro minutos de vídeo de iPhone a 60 quadros por segundo pesam cerca de 240 MB, grande demais para anexar, então o ffmpeg o espremeu para menos de 10 MB com a interface ainda legível. Escrevemos o roteiro inteiro das cenas, porque se este projeto nos ensinou uma coisa é que vamos esquecer como fizemos qualquer coisa.

As respostas foram para dois lugares: a resposta na Resolution Center e as notas de revisão na listagem do app, para que todo envio futuro chegue já com as perguntas respondidas. Os revisores seguem essas notas ao pé da letra. Escreva-as para alguém que nunca viu o seu app, tem quarenta segundos de sobra e está segurando um iPad. Os três vão se confirmar.

Mais uma coisa apareceu enquanto ensaiávamos. Excluir uma conta travou em "Excluindo..." uma vez e depois funcionou na segunda tentativa. Suspeitamos que o servidor tinha cochilado, o que para um revisor parece exatamente um botão quebrado. Mantenha o seu servidor acordado enquanto o revisor estiver na cidade.

A faxina de marcas registradas

Enquanto a Apple tinha a nossa atenção, percorremos o jogo procurando qualquer coisa que soasse como uma marca. As regras de direitos de conteúdo da Apple nos fizeram olhar, e não gostamos do que encontramos. Dois personagens tinham um "BMW Série 3 (CPO)" e um "Honda Civic". Os nomes não acrescentavam nada ao jogo e convidavam muito problema, então agora são um "Carro esportivo (CPO)" e um "Sedã básico". A palavra "monopoly" saiu das nossas palavras-chave da App Store.

Depois veio a Lambo. Descobrimos que o peão Lambo nunca foi um carro. Era um emoji de bandeira quadriculada o tempo todo, então o nome antigo prometia um superesportivo e entregava uma bandeira de corrida. Financeiramente falando, isso é só marketing. Agora ele é a Bandeira Quadriculada. O tema de tabuleiro chamado The Tank virou Piscina de Tubarões.

A única regra que não quebramos.

Mudamos os nomes exibidos e deixamos cada ID de produto exatamente onde estava. O peão quadriculado continua sendo pawn.lambo por baixo do capô e sempre será. Esses IDs estão ativos nas duas lojas, ligados a preços e citados nas concessões dos pacotes, e renomear um teria revogado o item de todo mundo que já o possui. Nomes são texto. IDs são contratos.

Rejeição número dois: o incidente do iPad

Em 17 de setembro a Apple voltou, e desta vez tinha encontrado problemas de verdade. O revisor estava usando um iPad Air (11 polegadas, M3) com iPadOS 27, porque apps só para iPhone rodam no iPad em modo de compatibilidade e são revisados lá. Foram dois achados. Guideline 2.1(a): tocar em Continuar com a Apple ou Continuar com o Google mostrava um erro. Guideline 2.1(b): o revisor não conseguia encontrar as nossas 39 compras no aplicativo.

Os dois erros eram nossos, e num certo sentido eram o mesmo erro.

O bug

O plugin de login quer um objeto options a cada chamada. No iOS, se ele estiver faltando, o plugin rejeita com "Missing provider or options" antes de qualquer tela de login ter chance de aparecer. No Android o mesmo plugin assume em silêncio um objeto vazio e segue em frente. Então a mesma linha de código passou tranquila pela revisão do Google Play e caiu no primeiro toque do lado da Apple, em todo iPhone e em todo iPad.

Um parâmetro faltando. O Android perdoou. O iOS não.

A Loja que ninguém achava

As compras eram um mal-entendido à parte que por acaso se encaixava perfeitamente no primeiro. As nossas antigas notas de revisão diziam ao revisor que comprar coisas exigia login. O login estava quebrado. Então o revisor nunca chegou à Loja, num círculo fechado criado por nós mesmos.

Piorou quando olhamos de perto, porque a Loja tinha mais três formas de decepcionar. Se a lista de produtos carregasse sem pacotes, a Loja tratava isso como "nada à venda" e escondia todo item que você ainda não tinha. Os três pacotes (5 Peões, Temas e Pacote Inicial de Personagens) estavam escondidos desde junho. E um convidado que comprasse o Pacote de 5 Peões teria pagado e não teria liberado nada, porque o nosso servidor só expandia os pacotes em seus itens para jogadores com login. Um convidado, claro, é exatamente o que um revisor é. Pegar o dinheiro de alguém e entregar uma caixa vazia é uma boa lição financeira. Só não era uma que queríamos ensinar.

A lista de correções, para constar. Passar o parâmetro. Fazer as duas telas de login se prenderem à janela ativa do app no iPad, porque o plugin se ancorava na primeira janela e no iPadOS ela nem sempre é a visível. Ensinar à Loja que zero produtos carregados significa "ainda não carregou" e não "vazio". Trazer os pacotes de volta. Ensinar o app a expandir pacotes para convidados. E reescrever as notas de revisão para dizer, em palavras simples, que nada precisa de login para comprar, e aqui está o caminho exato até a Loja.

O resultado foi a 1.2.9. A nota de versão dela abre com as duas frases que mais nos custaram: "Correções de login: Continuar com o Google mostra o seletor de contas num toque deliberado, e o login nativo não dá mais erro. A Loja sempre lista os seus itens, mesmo antes de os preços carregarem." Duas frases, dez dias das nossas vidas.

Builds 32 e 33: aquelas de que não falamos

Dava para achar que bastava enviar a correção. Enviamos, duas vezes, e estava errada nas duas. Nas builds 32 e 33 do TestFlight, o login com o Google funcionava, mas o Sign in with Apple, o botão da Apple no programa de testes da própria Apple, falhava com AuthorizationError 1000.

A causa é óbvia depois e invisível antes. Os entitlements viajam na assinatura do código. O nosso script de upload arquivava o app com a assinatura desligada e deixava a assinatura para a etapa de exportação, que consegue assinar um app mas não consegue dar a ele entitlements que ele nunca teve. O entitlement do Sign in with Apple nunca entrou na build. Em termos de desenvolvedor, o app tinha saído de casa sem calça.

O script de upload agora assina na hora de arquivar e se recusa a enviar qualquer arquivo cuja assinatura esteja sem o entitlement. Montamos um segurança de porta. Ele confere a identidade. As builds 32 e 33 estão mortas, e a build 34, a que estava vestida direito, é a que mandamos de volta para a Apple.

Aí a Apple disse sim.

Quente demais

Em 24 de setembro, os jogadores nos disseram que os celulares estavam esquentando. iPhones 15, iPhones 16 Pro Max e a versão web também um pouco quente. Adoraríamos dizer que era o charme irresistível dos juros compostos. Era um temporizador.

O jogo incrementava um contador uma vez por segundo, em todos os modos, e cada incremento redesenhava o jogo inteiro: o tabuleiro, cada casa, cada painel. Para sempre. Enquanto isso, os peões animados se repintavam até 120 vezes por segundo em celulares com telas rápidas, para desenhar uma animação de 30 quadros por segundo. O desfoque de tela cheia atrás de cada carta era recalculado a cada quadro porque o peão não parava de se mover embaixo dele. E os brilhos que faziam o tabuleiro parecer vivo animavam sombras, o que obriga um redesenho a cada quadro.

Corrigimos os quatro. O contador virou um único timeout. Os peões desenham só quadros inteiros e pausam quando estão fora da tela, com movimento reduzido ou cobertos por uma carta. Os brilhos e anéis animam opacidade e posição em vez de sombras, e pulsam três vezes e depois descansam. O trabalho ocioso no tabuleiro caiu de 624 ms para 15 ms em dez segundos de teste headless. Com uma carta aberta e o peão dragão no tabuleiro, caiu de 1.188 ms para 11 ms. As nossas animações agora mostram mais autocontrole do que mostramos em qualquer outro lugar deste projeto.

Saiu como a 1.2.10, com a manchete "Celulares mais frios", junto com uma regra de demissão mais justa. Só o seu salário para quando você é demitido. A sua renda extra continua pagando, e as contas continuam vencendo. Ser demitido deve doer. Não deve apagar o seu bico.

O livro-razão: todas as notas de versão, lidas em sequência

Guardamos as nossas notas de versão num único arquivo, o mesmo que alimenta as duas lojas. Lidas em ordem, elas formam um tipo estranho de diário, então aqui está ele com o subtexto acrescentado. As datas são as datas dos commits. O arquivo pula da 1.0.1 direto para a 1.2.6, então o que aconteceu no meio aconteceu sem diário. Cada número de versão abaixo leva ao seu próprio post.

1.0.0

Primeira versão do Moneyflow. Construa seu império financeiro com imóveis, ações e negócios. Escape do ciclo das 9 às 5, chegue à Fast Track e persiga seus sonhos.

Sincera, breve e um pouco apavorada. Veja como era pequena.

1.0.1

Google Play Compras pela web agora disponíveis em playmoneyflow.com. Melhorias de estabilidade e de UX.

App Store Melhorias de estabilidade e de desempenho. Várias correções de bugs no painel do demonstrativo financeiro e nas animações dos dados.

Mesma versão, dois conjuntos de notas. As lojas têm ideias diferentes sobre o que você pode dizer às pessoas, então mantemos um conjunto para cada uma e tentamos não misturar.

1.2.6

Chegaram os impostos: imposto de renda sobre o seu salário, 15% sobre a renda extra, 15% de ganho de capital nas vendas com lucro. Os personagens agora ganham salários reais dos EUA de 2025. Aluguéis e retornos dos negócios acompanham a economia — magros na crise, generosos no boom.

O Leão chega. Ninguém pediu isso e todo mundo precisava. Todo retorno do jogo agora é julgado depois do imposto, porque esse é o único retorno que importa.

1.2.7

Negocie em negócios, ofertas e propostas de empréstimo: um cara ou coroa 50/50, 20% melhor ou 20% pior. Escolha qual imóvel vender numa Disputa por imóvel e quais bens vão num divórcio — ou assine um Acordo pré-nupcial.

A pechincha na sua forma inocente. Também a primeira aparição do Acordo pré-nupcial, o que diz o que estava na nossa cabeça.

1.2.8 7 set

Pechinche duas vezes: negocie e depois renegocie — mas a outra parte pode ir embora (10%, depois 15%). As cartas agora combinam com a sua vida: sem divórcio antes de um casamento, sem venda de ações sem ações. O divórcio divide o seu patrimônio líquido, e o seu ex pode assumir empréstimos.

A romântica. Peça duas vezes e eles ficam sensíveis. Até esta versão o baralho podia dar a você um divórcio antes de você se casar, o que é mais caótico do que uma capela de Las Vegas. É também a versão que nos levou à porta da Apple.

1.2.9 22 set

Correções de login: Continuar com o Google mostra o seletor de contas num toque deliberado, e o login nativo não dá mais erro. A Loja sempre lista os seus itens, mesmo antes de os preços carregarem.

Escrita sob coação, por duas rejeições e um parâmetro faltando.

1.2.10 26 set

Celulares mais frios: o jogo não mantém mais o seu aparelho trabalhando pesado enquanto você joga. As animações ociosas pulsam algumas vezes e depois descansam, e o tabuleiro deixa de se redesenhar a cada segundo. As demissões ficam mais justas: só o seu salário para, a renda extra continua pagando, e as despesas continuam vencendo nos dias de pagamento pulados.

Aquela em que paramos de dar febre ao seu celular.

1.2.11 26 set

Novidade no menu Comprar: um apartamento na cidade, uma lavanderia e um motel de beira de estrada. … Cada carta tem a sua própria arte, e as suas escolhas ficam logo abaixo da carta. Convide amigos para uma sala privada de multijogador.

A versão mais cheia e uma das mais curtas, porque a 1.2.12 chegou na mesma noite. As salas privadas são a manchete para quem tem amigos: um anfitrião, de dois a quatro lugares e um código de seis caracteres.

1.2.12 26 set

Faltou dinheiro? Agora você escolhe como cobrir e vê o quão perto está da falência: empréstimos emergenciais seguidos, margem de crédito restante e dias de pagamento restantes. Os empréstimos de emergência agora custam menos que um cartão de crédito.

A falência agora vem com uma contagem regressiva, que é a forma mais amigável que conhecemos de ensinar o medo. Os empréstimos de emergência agora custam menos que o cartão de crédito, o que é mais do que a vida real fará por você. Também corrigido: os dados rolavam sozinhos depois que você fechava uma carta, o que era um bug ou o nosso recurso mais passivo-agressivo.

1.3.0 27 set

24 cartas novas, de um motel de beira de estrada e uma empresa SaaS a A Grande Aposta, além de raridade: cartas incomuns e raras agora aparecem. Esconda uma carta para olhar o tabuleiro e depois toque em Voltar à carta. Demissões e emergências não podem mais ser dispensadas.

Vinte e quatro cartas novas, um sistema de raridade e, discretamente, a mudança mais importante do mês: agora as cartas chegam do servidor. Mais sobre isso abaixo.

1.3.1 27 set

Peça empréstimo com seus ativos como garantia: qualquer imóvel, negócio ou ação sem empréstimo agora pode garantir um empréstimo mais barato, só de juros, à taxa de mercado mais 0,5%.

Alavancagem, de novo. É um jogo de finanças e não conseguimos nos controlar. Veio depois da 1.3.0, mais tarde no mesmo dia.

1.4.0 1 out

Novos bots Especialista que planejam cada jogada e leem a economia, e agora todos os bots podem comprar sonhos, vencer e pedir emprestado com seus ativos como garantia. A economia pesa mais: os juros seguem o ciclo de alta e recessão, a recessão reduz seus impostos e os aluguéis do que você possui sobem na alta e caem na recessão.

Aquela em que os bots aprenderam a vencer. Até então nenhum deles conseguia, porque nenhum deles jamais comprava um sonho. Chegaram os bots Especialista, a economia passou a mover juros, impostos e aluguéis conforme o seu humor, e o app aprendeu mais oito idiomas.

1.4.1 1 out

… Hipotecas agora são pagas em 25 anos, empréstimos empresariais em 15 e financiamentos de carro em 6; empréstimos bancários são só de juros e você pode se endividar até as parcelas chegarem a 67% da renda. …

As hipotecas finalmente têm data final. O trabalho com os empréstimos chegou depois de a 1.4.0 ser fechada, então saiu como a 1.4.1 naquela mesma noite, junto com um cartão de novidades na tela inicial.

1.4.2 1 out

Um bug, corrigido menos de vinte minutos depois da 1.4.1: o botão Empréstimo-ponte agora oferece o valor que o banco realmente aprova. Ela não tem notas próprias nas lojas.

O fim de semana das cinco versões.

Sábado, 26 de setembro

Domingo, 27 de setembro

Horários dos commits, no horário de Sófia. Nem toda versão chegou a toda loja como ela mesma: no Google Play, a 1.2.12 foi para produção no lugar da 1.2.11, e no iOS foi enviada no lugar dela. No mesmo fim de semana, o baralho ganhou 130 ilustrações, desenhadas em código.

A melhor atualização é aquela que ninguém precisa aprovar

No fim daquele fim de semana, tínhamos aprendido algo útil. A parte mais lenta de lançar uma atualização não é construí-la. É esperar uma loja olhar para ela. Então a 1.3.0 fez algo um pouco diferente: ensinou o app a aceitar entregas.

As cartas novas agora chegam dos nossos servidores, então a maior parte do conteúdo novo não precisa mais de atualização do app. Foi preciso uma versão do app para instalar a engrenagem. Depois disso, cartas novas ficam a um deploy de distância, com traduções e ilustrações incluídas.

A Loja funciona do mesmo jeito. A Apple revisa uma nova compra no aplicativo por conta própria, sem uma build nova, então um peão novo também não precisa mais de uma versão nova.

A parte esperta é a rede de segurança. Ninguém nunca recebe uma carta que o seu app não consegue jogar, então versões velhas e novas podem dividir uma mesa sem problema. Quando inventamos uma mecânica realmente nova, ainda voltamos para a fila como todo mundo.

A mesma versão trouxe a raridade, o que significa que algumas cartas aparecem bem menos que outras. Quão menos é segredo nosso, mas as mais raras aparecem mais ou menos tão seguido quanto uma App Review passa de primeira. Tiramos uma comum.

O placar

Para o pessoal das planilhas.

O que diríamos a nós mesmos no começo

O que antes era uma noite de cliques agora é um aumento de versão, uma nota e um punhado de comandos por loja. A espera é a única parte que não conseguimos automatizar. Todo o resto foi parar nesta lista.

  1. Ponha a versão no envio antes das compras no aplicativo. A Apple deixa você fazer ao contrário e depois se recusa a dizer por quê.
  2. Escreva as suas notas de revisão para um revisor que nunca viu o app. Ele tem quarenta segundos e um iPad, e segue as notas ao pé da letra. Dê a ele o caminho exato até tudo.
  3. Nunca ponha um login na frente da sua Loja. Convidados também têm carteira, e revisores são convidados.
  4. Assine o seu arquivo e depois faça o script se recusar a enviar um que não esteja usando os seus entitlements. Monte um segurança de porta para você.
  5. Faça as chaves faltando gritarem. A build 30 saiu sem a sua chave de pagamentos e nada reclamou em voz alta, então a Loja simplesmente ficou em branco. Uma falha silenciosa é uma rejeição com atraso.
  6. Teste nas duas plataformas mesmo quando o código é compartilhado. O Android perdoou o que o iOS recusou, e uma linha de código tinha duas personalidades diferentes.
  7. Renomeie produtos, nunca os IDs deles. Nomes são texto. IDs são contratos.
  8. Automatize, torne repetível, escreva. A API da Apple às vezes só está num momento ruim, então rode de novo antes de depurar. Os nossos runbooks existem porque esquecemos tudo duas vezes.
  9. Mantenha notas de versão separadas quando as lojas têm regras separadas. Mesma versão, frases diferentes.
  10. Envie conteúdo pelo servidor e guarde a fila da loja para mecânicas novas. A melhor atualização é aquela que ninguém precisa aprovar.
  11. Teste no hardware quente que os seus jogadores realmente têm. O simulador nunca ficou vermelho. Um iPhone 16 Pro Max ficou.
  12. Mantenha o servidor acordado enquanto o revisor estiver na cidade. Um servidor dormindo parece exatamente um botão quebrado.

Vai lá, dê uma voltinha com a gente

O Moneyflow é grátis na App Store, grátis no Google Play e grátis em qualquer navegador. Não há anúncios e você não precisa de conta para começar. Tudo na Loja é cosmético. Nada nela ajuda você a vencer, o que num jogo sobre dinheiro é ou muito principista ou um péssimo negócio.

E agora? Mais cartas, que agora chegam do servidor, mais formas de jogar com amigos e, se o universo for gentil, uma semana inteira sem um número de versão.

Baixar na App Store Baixar no Google Play Jogar no navegador

Nos vemos no tabuleiro.