Faça o build do seu jogo Unity para iOS a partir do Windows
O Unity no Windows consegue ter o iOS como alvo, mas para no meio do caminho. Ele gera um projeto Xcode, e só o Xcode em um Mac transforma isso em um app. Este guia mostra como levar o projeto para um Mac e arquivá-lo. Também fala dos builds na nuvem do Unity, que dispensam o Mac por completo.
O que o Unity faz no Windows, e o que precisa do Mac
A página de configuração de iOS do Unity diz que o Xcode só existe para macOS. Então, se sua máquina não roda macOS, você não consegue fazer o build do app localmente. O Unity faz o build iOS em duas etapas. O Unity gera um projeto Xcode, e depois o Xcode gera o app a partir dele.
No Windows você só tem a primeira etapa. A opção Run in Xcode só aparece quando o Unity roda no macOS. A segunda etapa faz um trabalho de verdade. A documentação do Unity diz que o Xcode roda o IL2CPP ali, que compila o C++ gerado dos seus scripts em libGameAssembly.a.
Etapa 1: exporte o projeto Xcode no Windows
- Adicione o módulo iOS Build Support ao seu editor no Unity Hub.
- Abra File, depois Build Profiles, e deixe o iOS como plataforma ativa.
- Clique em Build e escolha uma pasta vazia, por exemplo Builds/iOS.
A pasta contém o Unity-iPhone.xcodeproj. A documentação do Unity descreve dois targets dentro dele. Unity-iPhone é um lançador simples, e UnityFramework guarda o runtime e o seu código. Não mexa nas pastas Data e Libraries, porque o Unity as atualiza a cada build.
Etapa 2: copie para o Mac
O Windows traz o tar desde o Windows 10 build 17063. O cliente scp vem com o OpenSSH para Windows, um recurso opcional desde o build 1809. Se o scp não estiver lá, adicione o OpenSSH Client em Recursos opcionais (Optional features). Compacte a pasta, copie pelo Tailscale e descompacte no Mac:
cd Builds tar -czf ios-build.tgz iOS scp ios-build.tgz you@your-mac:~/ ssh you@your-mac "mkdir -p ~/MyGame && tar -xzf ~/ios-build.tgz -C ~/MyGame"
No Linux ou no WSL, o rsync envia só o que mudou desde a última cópia. Isso ajuda depois de pequenas mudanças em um jogo grande.
rsync -az --delete Builds/iOS/ you@your-mac:~/MyGame/iOS/
O git também funciona, mas uma exportação completa é grande e muda a cada build. A maioria dos times copia a exportação e usa o git para o projeto Unity.
Etapa 3: arquive no Mac
Você pode abrir o .xcodeproj no Xcode pela tela do Mac. Escolha o scheme Unity-iPhone e Any iOS Device, depois Product e então Archive. Ou fique no terminal por SSH. Primeiro liste os targets e os schemes:
cd ~/MyGame/iOS xcodebuild -list -project Unity-iPhone.xcodeproj
Depois arquive com o scheme do lançador. CODE_SIGNING_ALLOWED=NO gera um archive de teste sem certificado, o que prova que o projeto compila.
xcodebuild -project Unity-iPhone.xcodeproj -scheme Unity-iPhone \ -configuration Release -destination 'generic/platform=iOS' \ -archivePath build/Game.xcarchive archive \ CODE_SIGNING_ALLOWED=NO
Para publicar, tire essa flag e assine com o seu time. Depois exporte com -exportArchive e um ExportOptions.plist com o método app-store-connect. Nosso guia de publicação tem os comandos completos de assinatura e upload.
Alguns jogos usam o External Dependency Manager do Google para SDKs de iOS. Ele gera um Podfile e roda o CocoaPods depois do build. Se a sua exportação tem um Podfile, rode pod install no Mac. Depois faça o build do .xcworkspace em vez do .xcodeproj. O CocoaPods não vem pré-instalado, então adicione com brew install cocoapods.
O que testamos, e o que não testamos
O Unity não roda em CI sem licença, então não exportamos um jogo Unity de verdade. Em vez disso, testamos a metade do Mac em um projeto substituto com o mesmo formato: um target de app lançador e um target de framework. Em 19 de outubro de 2026, o runner macos-26 do GitHub o arquivou com o Xcode 26.6. Depois, um runner Windows o compactou com o tar do Windows. Um segundo Mac descompactou essa cópia e a arquivou de novo.
Xcode 26.6
Build version 17F113
Schemes:
Game-iPhone
GameFramework
** BUILD SUCCEEDED **
** ARCHIVE SUCCEEDED **
scp.exe C:\Windows\System32\OpenSSH\scp.exe
OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2
** ARCHIVE SUCCEEDED **Um jogo de verdade leva muito mais tempo, porque o Mac compila todo o código do IL2CPP. Se um build parar com Permission denied em um arquivo .sh, a cópia perdeu a permissão de execução. Rode chmod +x nesse arquivo e faça o build de novo.
A opção na nuvem: Unity Build Automation
A documentação do Unity sugere o Build Automation para quem não tem Mac. Ele faz o build do seu jogo nos servidores do Unity. Desde 1 de março de 2026, o Unity inclui 100 minutos de build em Mac por mês. Depois disso, uma máquina Mac padrão custa $0.07 por minuto de build, segundo o artigo de cobranças do DevOps do Unity.
Quem não deve alugar um Mac para isso
- Poucos builds por mês. Os 100 minutos grátis de Mac do Unity Build Automation podem bastar, sem Mac nenhum.
- Builds a cada commit. Um serviço de CI ou um runner macOS auto-hospedado funciona melhor do que copiar pastas na mão.
- Trabalho diário com iOS. Se você usa um Mac todo dia, comprar um pode sair mais barato em um ano.
Quando um Mac alugado faz sentido
Alguns problemas pedem o Xcode aberto. Erros de assinatura, erros de link de plugins e crashes no Simulador são mais fáceis de corrigir na mão. Um passe diário da MacRun é um Mac mini M6 dedicado por $15, e uma semana custa $59. O Xcode 27.1 é o padrão e o Xcode 26.6 também está instalado. Você conecta a partir do Windows com Tailscale e qualquer visualizador VNC.
O Mac é apagado quando o passe termina. Baixe seu .ipa e envie suas mudanças antes disso. Para um iPhone de verdade, envie o build pelo TestFlight, porque um Mac remoto não enxerga um celular ligado ao seu PC. Nosso guia para fazer build de apps iOS no Windows compara o Unity com outras engines.
Perguntas frequentes
O Unity consegue fazer o build de um app iOS no Windows?
+
Só até a metade. O Unity no Windows gera o projeto Xcode. A documentação do Unity diz que o Xcode só existe para macOS, então o app em si é gerado em um Mac ou no Unity Build Automation.
Como faço o build de um projeto Xcode do Unity pela linha de comando?
+
No Mac, rode xcodebuild -list para ver os schemes. Depois rode xcodebuild archive com o scheme Unity-iPhone e um destino iOS genérico. Exporte o archive com -exportArchive para ter um .ipa.
Qual versão do Xcode o Unity precisa?
+
A documentação do Unity 6.6 recomenda o Xcode 16 ou mais novo e dá suporte ao iOS 15 em diante. Um Mac da MacRun tem o Xcode 27.1 como padrão e o Xcode 26.6 também instalado.
Quanto custa o Unity Build Automation para iOS?
+
O artigo de cobranças do DevOps do Unity, válido desde 1 de março de 2026, inclui 100 minutos de build em Mac por mês. Depois disso, uma máquina Mac padrão custa $0.07 por minuto de build.
Como copio um build iOS do Unity do Windows para um Mac?
+
Compacte a pasta exportada com o tar, que o Windows traz desde o Windows 10 build 17063. Copie com scp e descompacte no Mac. No Linux ou no WSL, o rsync envia só o que mudou.
Posso testar meu build iOS do Unity em um iPhone a partir de um Mac remoto?
+
Não por USB, porque um Mac remoto não enxerga um celular ligado ao seu PC. Envie o build para o TestFlight e instale no celular por lá.