Guia

Exporte um jogo Godot para iOS sem ter um Mac

A exportação para iOS do Godot transforma seu jogo em um projeto Xcode. Depois o Xcode faz o build, assina e envia o app, e o Xcode só roda no macOS. Rodamos a cadeia inteira no GitHub Actions em 19 de outubro de 2026, com o Godot 4.7.2. A etapa de exportação funcionou também no Windows e no Linux. A etapa do Xcode precisou do Mac.

O que a documentação diz, e o que vimos

A página de iOS do Godot 4.7 diz que você precisa exportar a partir de um Mac com o Xcode instalado. No nosso teste, os editores no Windows e no Linux geraram o projeto Xcode mesmo assim. Eles mostraram este aviso e pararam ali:

WARNING: Xcode Build: .ipa can only be built on macOS. Leaving Xcode project without building the package.
WARNING: Project export for preset "iOS" completed with warnings.

Copiamos cada projeto para um Mac e fizemos o build para aparelho. Os três builds passaram. Trate isso como um atalho testado, não como um recurso oficial. Nosso jogo de teste não tinha plugins nem código C#. O código-fonte do Godot diz que projetos C# precisam ser exportados para iOS a partir do macOS.

Etapa 1: export templates

O exportador precisa dos export templates da sua versão exata do Godot. No editor, abra Editor, depois Manage Export Templates, e baixe os templates. O arquivo da 4.7.2 tem cerca de 1.3 GB. Em um servidor sem tela, descompacte o .tpz você mesmo. Estas são as pastas que usamos:

# macOS
~/Library/Application Support/Godot/export_templates/4.7.2.stable
# Linux
~/.local/share/godot/export_templates/4.7.2.stable
# Windows (Git Bash)
$APPDATA/Godot/export_templates/4.7.2.stable

Etapa 2: o preset de exportação para iOS

Abra Project, depois Export, clique em Add e escolha iOS. Dois campos são obrigatórios. App Store Team ID é o código de 10 caracteres da sua conta Apple Developer, não o seu nome. Bundle Identifier é o ID do seu app, como com.example.mygame. O Godot salva o preset em export_presets.cfg. Esta é a parte do nosso que importava:

# export_presets.cfg
[preset.0]
name="iOS"
platform="iOS"
runnable=true
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="export/GodotDemo.ipa"

[preset.0.options]
application/app_store_team_id="ABCDE12XYZ"
application/bundle_identifier="com.example.godotdemo"
application/export_project_only=true

# project.godot, two settings the export needed
[application]
config/icon="res://icon.svg"

[rendering]
textures/vram_compression/import_etc2_astc=true

Export Project Only diz ao Godot para gerar o projeto Xcode e parar. Sem isso, o Godot em um Mac roda o xcodebuild sozinho para gerar um archive e um .ipa. Isso exige assinatura de verdade, então comece só com o projeto.

Etapa 3: exporte pela linha de comando

O nome do preset vai entre aspas. O caminho de saída é relativo à pasta que contém o project.godot.

godot --headless --path demo --export-release "iOS" export/GodotDemo.ipa

A exportação levou cerca de 9 segundos no Linux e 21 no Windows. Ela gerou o GodotDemo.xcodeproj, uma pasta GodotDemo, o .pck com os dados do jogo e a engine como GodotDemo.xcframework.

Dois erros nos custaram uma execução cada:

  • Sem ícone no projeto, a exportação falha com Invalid icon (icons/settings_58x58). Defina um ícone em Project Settings.
  • Sem a importação de texturas ETC2/ASTC, a exportação falha com uma mensagem vazia de "configuration errors". Ligue Import ETC2 ASTC em Rendering, Textures, VRAM Compression.

Etapa 4: faça o build no Mac

Envie a pasta exportada para o git, ou copie com scp. No Mac, isto faz o build para aparelho com a assinatura desligada:

xcodebuild -project GodotDemo.xcodeproj -scheme GodotDemo \
  -configuration Release -sdk iphoneos \
  -destination 'generic/platform=iOS' \
  -derivedDataPath build build CODE_SIGNING_ALLOWED=NO

Terminou em menos de 25 segundos e gerou um app de 82 MB. Para publicar, abra o GodotDemo.xcodeproj no Xcode. Escolha seu time em Signing and Capabilities, depois Product e então Archive. Nosso guia de publicação explica o upload.

O porém do Simulador

Um build normal para o simulador falhou no link. O template oficial traz a biblioteca da engine para o simulador só para Intel (x86_64). Em um Mac com Apple silicon, o Xcode procura arm64 e para com este erro:

Undefined symbols for architecture arm64:
  "_main", referenced from:

O build para x86_64 funcionou. O app então rodou no simulador do iPhone 17 Pro pelo Rosetta e mostrou nossa cena cinza vazia. A documentação do Godot acrescenta que o simulador só suporta o renderizador Compatibility.

xcodebuild -project GodotDemo.xcodeproj -scheme GodotDemo \
  -configuration Release -sdk iphonesimulator \
  -destination 'generic/platform=iOS Simulator' ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO \
  -derivedDataPath build build CODE_SIGNING_ALLOWED=NO

Para velocidade real e toque, teste em um celular com o TestFlight. Um Mac remoto não enxerga um iPhone ligado ao seu PC.

Um Mac para a etapa do Xcode

Um passe diário da MacRun é um Mac mini M6 dedicado por $15, ou $59 por uma semana. O Xcode 27.1 está instalado, e o Xcode 26.6 para projetos mais antigos. O Godot não vem pré-instalado. Você tem direitos de administrador e Homebrew, então instala a versão que combina com o seu editor. Você trabalha por SSH ou compartilhamento de tela a partir do Windows. O Mac é apagado no final, então envie seu trabalho antes. Para dicas sobre a tela, veja Xcode a partir do Windows.

Quem não deve alugar um Mac para isso

Se você só precisa conferir um build sem assinatura, rode os comandos acima nos runners macOS do GitHub Actions. Nossos cinco jobs passaram ali sem um Mac nosso. O Codemagic dá a pessoas físicas 500 minutos grátis de macOS M2 por mês, segundo a página de preços em 19 de outubro de 2026. Se você publica toda semana por anos, um Mac usado pode sair mais barato do que alugar. Alugue quando precisar do Xcode aberto: erros de assinatura, o Simulador ou um archive para enviar.

Perguntas frequentes

O Godot consegue exportar para iOS no Windows?

+

A documentação do Godot diz para exportar a partir do macOS. No nosso teste de outubro de 2026, o Godot 4.7.2 no Windows e no Linux gerou o projeto Xcode mesmo assim. Ele avisou que o .ipa só pode ser gerado no macOS. Depois um Mac fez o build.

Preciso de um Mac para publicar um jogo Godot na App Store?

+

Sim, para a última etapa. O Xcode faz o build, assina e envia o app, e o Xcode só roda no macOS. Um Mac alugado ou um runner de CI com macOS cobre essa etapa.

O que é o App Store Team ID na exportação para iOS do Godot?

+

É o código de 10 caracteres do seu time no Apple Developer, como ABCDE12XYZ. Não é o seu nome. A documentação do Godot diz que ele aparece em developer.apple.com, ao lado do seu nome.

Por que meu build do Godot para o simulador do iOS falha com undefined symbol _main?

+

No nosso teste, o template oficial 4.7.2 tinha uma biblioteca de simulador só para x86_64. Em um Mac com Apple silicon, adicione ARCHS=x86_64 ao comando xcodebuild. O app então roda pelo Rosetta.

Onde ficam os export templates do Godot em uma máquina sem tela?

+

Descompacte o .tpz e renomeie a pasta templates para a versão, como 4.7.2.stable. No macOS, coloque em ~/Library/Application Support/Godot/export_templates. No Linux, use ~/.local/share/godot/export_templates.

Posso exportar um projeto Godot em C# para iOS a partir do Windows?

+

Não. O código-fonte do Godot bloqueia a exportação de C# para iOS em sistemas que não sejam macOS. O Godot também considera o C# no iOS experimental. Exporte projetos C# no Mac.

Guias relacionados