Publicar jogo na App Store sem Mac: o caminho que usamos na nuvem
Como levamos um jogo HTML5 de um PC com Windows até a revisão da Apple com Capacitor, Codemagic e TestFlight, e os erros que nos custaram builds.

Dá, sim, para publicar jogo na App Store sem Mac. O Mac continua necessário, mas você aluga: o jogo HTML5 é empacotado com Capacitor no seu PC, um serviço na nuvem como o Codemagic compila e assina nas máquinas Mac dele, o build vai para o App Store Connect e para o TestFlight, e a ficha, a privacidade e o envio você termina no navegador. O que não dá para pular é um iPhone, porque alguém tem de jogar o build antes da Apple.
Fizemos isso a partir do Windows com o nosso jogo de ação Little Ninja Dash. O primeiro build bem-sucedido na nuvem levou uns seis minutos, e o app foi para a revisão da Apple em 19 de outubro de 2026, onde os nossos registros mostram o estado Waiting for Review. Este guia não informa resultado de revisão. Os fatos sobre a Apple e o Codemagic vêm das páginas oficiais, lidas em 30 de outubro de 2026. O resto é o que as nossas notas registram, inclusive o que deu errado.
Do que você precisa, e o que um Mac faria
- Inscrição no Apple Developer Program: 99 dólares por ano de inscrição. Podem se inscrever pessoas físicas e empresas. Empresas precisam de um número D-U-N-S e de um site público.
- Uma conta no Codemagic. O plano individual grátis tem 500 minutos de build por mês em macOS M2 e um build por vez; depois disso, o minuto do Mac mini M2 custa US$ 0,095. Os minutos grátis são para usuário individual, não para equipes.
- Um repositório Git privado com o projeto. O Codemagic compila a partir do repositório que você conecta. Com os nossos templates, o repositório precisa ser privado: um público redistribuiria o código-fonte, e a licença proíbe isso.
- Um iPhone com o app TestFlight, para testar o build de verdade.
- Um jogo que funcione offline a partir da própria pasta, empacotado com o Capacitor.
Desde 28 de abril de 2026 a Apple exige que os apps enviados ao App Store Connect sejam compilados com o Xcode 26 ou mais novo e um SDK do iOS 26. A página iOS do Capacitor também pede Xcode 26.0 ou mais novo e suporta iOS 15 em diante. O Xcode só roda no macOS, e é por isso que o build acontece nas máquinas do Codemagic e não no seu PC.
As nossas edições de template são jogos para navegador. A página de cada edição diz que versões nativas de app não estão incluídas. Uma licença cobre um produto final, e você pode publicar esse jogo onde quiser, App Store e Google Play incluídas. Não é permitido revender o template em si. Se pretende cobrar dos jogadores, com app pago ou compras dentro do app, pergunte antes.
Ver os templates e o que cada edição inclui
Passo 1: criar o projeto iOS no Windows
Se você já tem um projeto Capacitor para Android, instale o @capacitor/ios e rode npx cap add ios. Isso cria a pasta ios/, mesmo no Windows. Não dá para abrir no Xcode localmente, então toda mudança no projeto nativo é uma edição de arquivo que você confere no próximo build na nuvem.
- Ícone: um PNG de 1024 por 1024 sem transparência.
- Aparelhos e orientação: o nosso jogo é só para iPhone e só na horizontal. Aceitar iPad acrescenta capturas de iPad e mais layouts para testar.
- Criptografia: a ajuda de conformidade de exportação da Apple manda atualizar o Info.plist para não responder às perguntas de criptografia a cada envio. O nosso jogo só usa o HTTPS do sistema, então pusemos ITSAppUsesNonExemptEncryption como false.
- Só arquivos embutidos: o jogo fica dentro do app e nunca carrega o nosso site. A diretriz 4.2 da Apple pede apps que vão além de um site reempacotado.
Vai partir de um template? O Velvet Pool é um que empacotamos com Capacitor para a Google Play, então a pasta do jogo já passou por esse passo no Android. Nenhum dos nossos templates passou pela revisão da App Store ainda.
Ver o Velvet Pool, template que já empacotamos com Capacitor
Passo 2: assinatura sem Mac e sem Keychain
A assinatura era a parte que exigia um Mac. Com uma chave da API do App Store Connect, o Codemagic faz isso na nuvem.
- No site de desenvolvedor da Apple, crie um App ID (bundle identifier) para o jogo, com In-App Purchase se for vender algo dentro dele.
- No App Store Connect, crie o registro do app com esse bundle ID, um SKU e o idioma principal.
- Gere uma chave da API do App Store Connect. A documentação do Codemagic recomenda uma chave só para ele. Cadastre-a nas integrações do Codemagic e nunca ponha o arquivo da chave no repositório.
- Deixe o Codemagic gerar o certificado de distribuição e buscar o perfil de provisionamento com a chave. Ele busca certificados que ele mesmo gerou e perfis do portal de desenvolvedor da Apple.
O que deu errado com a gente
- Os dois primeiros builds falharam porque ainda não havia perfil de provisionamento para o bundle ID. Prepare certificado e perfil antes do primeiro build.
- Um perfil importado sem reference name no Codemagic não funcionou, e o botão falhou sem avisar. Preencha sempre o nome.
- O primeiro cadastro da chave falhou porque digitamos o Issuer ID errado. Copie e cole da página de chaves da Apple.
- O número do build tem de subir sempre. Pedir à Apple o último número falhou enquanto um envio anterior ainda processava, então passamos a usar um número tirado do relógio.
Passo 3: build no Codemagic e teste no TestFlight
A receita do build fica num arquivo codemagic.yaml no repositório. O nosso instala as dependências, prepara os arquivos do jogo, sincroniza com o projeto iOS por npx cap sync ios, aplica os perfis e gera o IPA numa máquina Mac mini M2. Depois o Codemagic publica o build no App Store Connect. O primeiro build bem-sucedido levou uns seis minutos, e o de produção, mais tarde, menos de quatro.
Uma surpresa: com submit_to_testflight em false, o Codemagic enviou o build ao App Store Connect do mesmo jeito. A documentação do Codemagic descreve essa opção como a necessária para distribuir a grupos de teste.
Limites do TestFlight
- Testadores internos: até 100 usuários do App Store Connect da sua equipe.
- Testadores externos: até 10.000, depois que o primeiro build para teste externo é aprovado pela App Review.
- Um build fica disponível para os testadores por até 90 dias.
O convite de testador interno fica pendente até ser aceito pelo e-mail do TestFlight, e o app não aparece no TestFlight antes disso. Olhe a caixa de spam.
O que o iPhone achou e o Windows não
- Os arquivos de áudio gravados não carregavam. Dentro do app, o fetch devolvia status 0 com os bytes certos, e o nosso código tratava isso como erro. Aceitar status 0 para arquivos locais resolveu.
- Botões cortados na horizontal perto do notch. Refizemos o layout da tela de resultado e testamos todos os cantos.
- Telas de compra compartilhadas com o Android ainda diziam Google Play. No iOS agora dizem App Store.
- Compras de teste feitas no TestFlight não voltavam atrás, então os builds de teste ganharam um botão que simula não ter comprado. Os builds da loja não têm esse botão.
Passo 4: ficha no App Store Connect, privacidade e classificação
O resto acontece no navegador. Esta foi a ordem que funcionou para nós.
- Informações do app: subtítulo, categoria e o questionário de classificação etária. Responda com honestidade sobre o que o jogo mostra de fato.
- Preço e disponibilidade: preço e países. A disponibilidade em Mac e Apple Vision Pro veio ligada por padrão. Desligamos porque o nosso jogo é feito para toque.
- Privacidade do app: a Apple exige esses dados para apps novos e atualizações, incluindo as práticas de parceiros cujo código está no app, como redes de anúncio e SDKs. O link de uma política de privacidade pública é obrigatório.
- Compra dentro do app, se houver: nomes, descrições, uma captura para a revisão e notas para o revisor.
- Página da versão: descrição, palavras-chave, URLs de suporte e de marketing, copyright, o build, notas da revisão e a forma de lançamento. Escolhemos lançamento manual.
- Capturas de tela e depois cada idioma extra com os próprios textos e capturas.
- Capturas: a diretriz 2.3.3 diz que elas devem mostrar o app em uso, não só a arte do título ou a tela de abertura. As nossas são capturas reais do jogo.
- Nome do app: um nome que queríamos já estava em uso na App Store. Tenha um segundo nome, ou um nome com uma parte descritiva curta, já pronto.
- Notas para a revisão: escrevemos que o jogo está completo dentro do app, funciona offline, não pede login e onde ficam a compra e o botão de restaurar.
Ler os termos da licença antes de publicar um template como app
Passo 5: enviar, e o que a Apple confere
No envio você publica as respostas de Privacidade do app, confirma que são verdadeiras e manda o rascunho de envio. O nosso entrou em 19 de outubro de 2026 com a versão do app e a compra única, e o estado passou a Waiting for Review. Se a revisão voltar com recusa, a resposta vai pelo Resolution Center, com fatos, e não com um reenvio às cegas.
Para um jogo feito a partir de template, três diretrizes pesam mais. A 4.2 pede mais que um site reempacotado, então mantenha o jogo dentro do app. A 4.3(a) pede para não criar vários bundle IDs do mesmo app. A 4.3(b) diz que a Apple não quer apps impossíveis de distinguir do que já existe em quantidade. Um reskin precisa mudar regras, conteúdo e interface, não só a arte.
O que os nossos templates incluem, e a parte que podemos fazer
Todo template vem com a pasta do jogo pronta para hospedar, código legível, manual e 6 meses de suporte, ou 12 com a extensão. O suporte cobre instalação e uso dos arquivos entregues e correção de defeitos que se reproduzem. Empacotamento para iOS, anúncios nativos, compras dentro do app, a configuração do build na nuvem e a ficha da App Store são serviços à parte.
Se prefere não configurar assinatura e Codemagic, mande o template, como vai ficar a sua conta da Apple e o prazo. Respondemos com escopo, preço e prazo antes de começar. Não publicamos tabela de preços para trabalho sob encomenda.
Pedir orçamento para levar o seu jogo à App Store
Perguntas frequentes sobre publicar jogo na App Store sem Mac
Dá para publicar jogo de iPhone sem ter um Mac?
Dá. O build continua precisando de macOS e Xcode, mas um serviço na nuvem como o Codemagic fornece os dois. Todo o resto, do App Store Connect ao TestFlight, funciona no navegador e no iPhone.
Quanto custa publicar na App Store?
O Apple Developer Program custa 99 dólares por ano de inscrição. O plano individual grátis do Codemagic inclui 500 minutos por mês em macOS M2, e os minutos extras são cobrados por minuto. Some a licença do jogo e a arte da loja.
Preciso de um iPhone?
Para testar de verdade, sim. O nosso iPhone achou áudio que não tocava, botões cortados e nome de loja errado, coisas que o build no Windows e os testes no navegador não mostraram.
A Apple aceita jogo HTML5 dentro de um app?
Não dá para prometer resultado. A diretriz 4.2 pede mais que um site reempacotado, então embutimos o jogo inteiro no app, fazemos funcionar offline e damos recursos nativos. A diretriz 4.3 também vale para reskins.
Os seus templates vêm com versão para iOS?
Não. As nossas edições são jogos para navegador, e as páginas dos itens dizem que versões nativas de app não estão incluídas. Você pode seguir este caminho ou encomendar o trabalho por orçamento.
