Faça o build do seu app de iOS a partir do Windows, framework por framework
Você pode escrever um app Flutter, React Native, Unity, Godot ou MAUI no Windows. O build de iOS é a única etapa que precisa de um Mac. Todas essas ferramentas entregam a última etapa ao Xcode. Esta página lista o que você roda no Mac para cada framework. Ela também mostra como enviar o resultado.
O que precisa de Mac, por framework
Isto é o que a documentação de cada projeto diz, lida em 18 de outubro de 2026.
- Flutter: o guia de publicação para iOS diz que o Xcode é obrigatório e que você precisa usar um aparelho com macOS. O seu código Dart e os seus builds de Android podem ficar no Windows ou no Linux.
- React Native: o guia da App Store faz o build de release no Xcode. O trabalho com JavaScript e os testes do Jest rodam em qualquer sistema.
- Expo: o EAS Build roda os builds de iOS em máquinas macOS na nuvem do Expo, então talvez você nunca precise de um Mac seu.
- Unity: o editor gera um projeto do Xcode, e o Xcode faz o build do app a partir dele. A Unity diz que um build local de iOS precisa do macOS.
- Godot: a documentação diz que você precisa exportar para iOS de um computador com macOS e Xcode instalado. No nosso teste, o Godot 4.7.2 no Windows e no Linux ainda gerou o projeto do Xcode. Veja o nosso guia do Godot.
- .NET MAUI: o Visual Studio no Windows se conecta a um Mac por SSH, e o Mac compila e assina o app.
Dois guias mais antigos cobrem o caso geral. Leia como publicar sem Mac para chaves de API, assinatura e TestFlight. Leia Xcode no Windows para a tela remota e o teclado. Esta página fica nos comandos.
Antes de começar: conta e assinatura
- Você precisa de uma assinatura paga do Apple Developer Program. Ela custa 99 USD por ano.
- Crie o registro do app no App Store Connect, que funciona em qualquer navegador.
- Adicione a sua Conta Apple ao Xcode no Mac e depois escolha a sua equipe em Signing and Capabilities.
- Deixe Automatically manage signing ligado, para o Xcode criar o certificado e o perfil para você.
Flutter: flutter build ipa
Instale o Flutter no Mac e clone o seu repositório lá. Depois rode este único comando na pasta do projeto:
flutter build ipa
A documentação do Flutter diz que isso gera um .xcarchive em build/ios/archive e um .ipa em build/ios/ipa. Use --build-name e --build-number para definir a versão. O Flutter documenta três jeitos de enviar o resultado. Você pode arrastar o .ipa para o app Transporter da Apple no Mac. Pode abrir o archive no Xcode e clicar em Distribute App. Ou pode enviar pelo terminal com uma chave de API do App Store Connect:
xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa \ --apiKey your_api_key --apiIssuer your_issuer_id
React Native: archive no Xcode
O guia do React Native faz a publicação na janela do Xcode. Instale os pods primeiro e depois abra o workspace:
cd ios bundle exec pod install open MyApp.xcworkspace
- Em Product, Scheme, Edit Scheme, defina a configuração de build de Run como Release.
- Defina o aparelho como Any iOS Device (arm64) e depois escolha Product e Archive.
- Na janela do archive, clique em Distribute App, depois App Store Connect, depois Upload.
O build aparece então no App Store Connect, em TestFlight. Para publicar pelo terminal, use xcodebuild archive e -exportArchive, com as opções do nosso guia de publicação. Para o fluxo completo no Windows e no Linux, veja builds de iOS com React Native sem Mac.
No Expo, você pode dispensar o Mac nos builds. Rode isto no Windows, e o build acontece nos runners de macOS do Expo:
eas build --platform ios
Você ainda precisa de um Mac quando quer o Simulador ou o depurador do Xcode.
Unity: build no Windows, archive no Mac
Em Build Profiles, escolha iOS e clique em Build, e a Unity gera uma pasta com um projeto do Xcode. A opção Run in Xcode só aparece no macOS, então no Windows você para aí. Copie a pasta para o Mac por SSH:
scp -r Builds/iOS you@your-mac:~/MyGame-iOS
No Mac, abra o .xcodeproj dentro dessa pasta. Escolha o scheme Unity-iPhone, que é o alvo inicial que roda o UnityFramework. Defina o aparelho como Any iOS Device e depois escolha Product e Archive. Distribua pela janela Organizer como qualquer outro app de iOS.
Um jogo grande gera uma pasta grande, então o tempo de cópia depende da sua velocidade de upload. A Unity também oferece o Build Automation, que faz o build do jogo na nuvem da Unity. O nosso guia da Unity tem os comandos testados.
Godot: exporte no Mac
A exportação para iOS do Godot só roda no macOS. Instale o Godot e os templates de exportação no Mac e depois abra o seu projeto lá.
- Abra Project, depois Export, depois clique em Add e escolha iOS.
- Preencha App Store Team ID e Bundle Identifier, porque o exportador exige os dois.
- O Team ID é um código de 10 caracteres, não o seu nome como o Xcode mostra.
- Clique em Export Project e escolha uma pasta vazia para os arquivos.
- Abra o .xcodeproj gerado e depois escolha Product e Archive.
.NET MAUI: pareie o Visual Studio com o Mac
O recurso Pair to Mac da Microsoft roda os builds no Mac por SSH, então o Login Remoto precisa estar ativado. O Xcode precisa ser instalado à mão e aberto uma vez. A Microsoft também pede o Mono, e o Rosetta em Apple silicon. No Visual Studio, abra Tools, iOS, Pair to Mac. Se o Mac não aparecer na lista, adicione pelo endereço.
Você também pode publicar pela linha de comando do Windows. Este é o exemplo da Microsoft para o Visual Studio 2026, sem a senha:
dotnet publish -f net8.0-ios -c Release -p:ArchiveOnBuild=true \
-p:RuntimeIdentifier=ios-arm64 \
-p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" \
-p:CodesignProvision="MyMauiApp" \
-p:ServerAddress={macOS build host IP address} \
-p:ServerUser={macOS username} -p:TcpPort=58181 \
-p:_DotNetRootRemoteDirectory=/Users/{macOS username}/Library/Caches/maui/PairToMac/SDKs/dotnet/Troque net8.0-ios pelo seu próprio target framework. Sem a opção de senha, o Pair to Mac usa as chaves SSH que salvou na primeira conexão. O .ipa assinado fica em bin\Release no seu PC. A Microsoft indica o Transporter para o envio.
Envio: o que a Apple lista hoje
A página de envio da Apple cita quatro ferramentas: Xcode, Swift Playground, altool e Transporter. Ela diz que o Transporter e o altool aceitam todos os tipos de alvo, e não dá data de fim para o altool. O Transporter é um app de macOS, mas a versão de linha de comando dele também roda no Windows, com alguns limites. O nosso guia de publicação explica esses limites.
Builds na nuvem ou um Mac alugado?
Comece pelo que você precisa. Se você só precisa de um .ipa de vez em quando, um build na nuvem pode bastar. Codemagic, EAS Build e os runners de macOS do GitHub Actions fazem build de apps de iOS. O nosso guia do GitHub Actions mostra uma configuração.
Um Mac alugado serve para outros trabalhos. Você pode precisar do Simulador para conferir uma tela, ou do depurador do Xcode para um crash. Um erro de assinatura é mais fácil de corrigir na janela do Xcode. E algumas equipes querem acompanhar cada etapa de uma publicação enquanto ela acontece.
Dia de publicação em um Mac de $15
Muitos apps publicam só algumas vezes por ano. Para isso, um passe diário da MacRun custa $15, pago uma vez e sem renovação. Um passe semanal custa $59, o que deixa tempo para uma correção depois da revisão. Se você publica a cada poucas semanas, os planos mensais começam em $139.
- Você recebe um Mac mini dedicado, não compartilhado, com direitos de administrador.
- O Xcode 27.1 é o padrão, e o Xcode 26.6 vem instalado para projetos mais antigos.
- O simulador do iOS 27.1, incluindo o iPhone Duo, já vem instalado.
- O Mac fica pronto para usar em menos de 5 minutos.
- O SSH e o Compartilhamento de Tela rodam por uma rede privada do Tailscale a partir do Windows ou do Linux.
O Mac é apagado quando o passe termina. Envie o seu código e copie os seus arquivos de assinatura antes disso.
Perguntas frequentes
Posso fazer o build de um app de iOS no Windows?
+
Você pode escrever o app no Windows. O build de iOS precisa do Xcode, que só roda no macOS. Use um Mac alugado, um runner de CI ou um serviço de build na nuvem para essa etapa.
O Flutter consegue fazer build de iOS no Windows?
+
Não. O guia de publicação para iOS do Flutter diz que você precisa usar um aparelho com macOS nessa etapa. Rode flutter build ipa em um Mac e depois envie o .ipa com o Transporter, o altool ou o Xcode.
Posso fazer o build de um app React Native para iOS sem Mac?
+
Com o Expo, sim, porque o EAS Build roda os builds de iOS em máquinas macOS na nuvem do Expo. Sem o Expo, você precisa de um Mac para gerar o archive do app no Xcode.
A Unity consegue fazer build para iOS no Windows?
+
A Unity gera o projeto do Xcode. Depois o Xcode faz o build do app, e o Xcode só roda no macOS. Copie o projeto para um Mac e gere o archive lá, ou use o Unity Build Automation.
Como envio um app de iOS pelo Windows?
+
A ferramenta de linha de comando Transporter da Apple roda no Windows. Ela ainda precisa de um arquivo que o Xcode exporta com o build, então o build em si vem de um Mac.