Guide

Exporter un jeu Godot vers iOS sans posséder de Mac

L’export iOS de Godot transforme votre jeu en projet Xcode. Xcode compile, signe et envoie ensuite l’app, et Xcode ne tourne que sous macOS. Nous avons lancé toute la chaîne sur GitHub Actions le 19 octobre 2026, avec Godot 4.7.2. L’étape d’export a aussi marché sous Windows et Linux. L’étape Xcode a demandé le Mac.

Ce que dit la documentation, et ce que nous avons vu

La page iOS de Godot 4.7 dit qu’il faut exporter depuis un Mac avec Xcode installé. Dans notre test, les éditeurs Windows et Linux ont quand même écrit le projet Xcode. Ils ont affiché cet avertissement et se sont arrêtés là :

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.

Nous avons copié chaque projet sur un Mac et l’avons compilé pour un appareil. Les trois builds ont réussi. Voyez cela comme un raccourci testé, pas comme une fonction officielle. Notre jeu de test n’avait ni plugins ni code C#. Le code source de Godot dit que les projets C# doivent être exportés pour iOS depuis macOS.

Étape 1 : les modèles d’export

L’exportateur a besoin des modèles d’export de votre version exacte de Godot. Dans l’éditeur, ouvrez Editor, puis Manage Export Templates, et téléchargez-les. Le fichier 4.7.2 pèse environ 1.3 GB. Sur un serveur sans écran, décompressez le .tpz vous-même. Voici les dossiers que nous avons utilisés :

# 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

Étape 2 : le preset d’export iOS

Ouvrez Project, puis Export, cliquez sur Add et choisissez iOS. Deux champs sont obligatoires. App Store Team ID est le code de 10 caractères de votre compte Apple Developer, pas votre nom. Bundle Identifier est l’identifiant de votre app, comme com.example.mygame. Godot enregistre le preset dans export_presets.cfg. Voici la partie du nôtre qui comptait :

# 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 dit à Godot d’écrire le projet Xcode et de s’arrêter. Sans cette option, Godot sur un Mac lance lui-même xcodebuild pour produire une archive et un .ipa. Cela demande une vraie signature, donc commencez par le projet seul.

Étape 3 : exporter en ligne de commande

Le nom du preset se met entre guillemets. Le chemin de sortie est relatif au dossier qui contient project.godot.

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

L’export a pris environ 9 secondes sous Linux et 21 sous Windows. Il a écrit GodotDemo.xcodeproj, un dossier GodotDemo, le .pck avec les données de votre jeu et le moteur sous forme de GodotDemo.xcframework.

Deux erreurs nous ont coûté un run chacune :

  • Sans icône de projet, l’export échoue avec Invalid icon (icons/settings_58x58). Définissez une icône dans Project Settings.
  • Sans import de textures ETC2/ASTC, l’export échoue avec un message "configuration errors" vide. Activez Import ETC2 ASTC dans Rendering, Textures, VRAM Compression.

Étape 4 : compiler sur le Mac

Poussez le dossier exporté sur git, ou copiez-le avec scp. Sur le Mac, ceci le compile pour un appareil, signature désactivée :

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

Il a terminé en moins de 25 secondes et a produit une app de 82 MB. Pour la publier, ouvrez GodotDemo.xcodeproj dans Xcode. Choisissez votre équipe dans Signing and Capabilities, puis Product, puis Archive. Notre guide de publication couvre l’envoi.

Le piège du simulateur

Un build normal pour le simulateur a échoué au link. Le modèle officiel fournit sa bibliothèque moteur pour simulateur en Intel (x86_64) seulement. Sur un Mac Apple silicon, Xcode cherche arm64 et s’arrête sur cette erreur :

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

Compiler pour x86_64 a marché. L’app a ensuite tourné dans le simulateur iPhone 17 Pro via Rosetta et a affiché notre scène grise vide. La documentation de Godot ajoute que le simulateur ne prend en charge que le moteur de rendu 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

Pour la vraie vitesse et le tactile, testez sur un téléphone avec TestFlight. Un Mac distant ne voit pas un iPhone branché sur votre PC.

Un Mac pour l’étape Xcode

Un pass journée MacRun est un Mac mini M6 dédié pour $15, ou $59 pour une semaine. Xcode 27.1 est installé, et Xcode 26.6 pour les projets plus anciens. Godot n’est pas préinstallé. Vous avez les droits administrateur et Homebrew, donc vous installez la version qui correspond à votre éditeur. Vous travaillez en SSH ou en partage d’écran depuis Windows. Le Mac est effacé à la fin, donc poussez votre travail avant. Pour des conseils sur l’écran, voyez Xcode depuis Windows.

Qui ne devrait pas louer un Mac pour ça

Si vous voulez seulement vérifier un build non signé, lancez les commandes ci-dessus sur les runners macOS de GitHub Actions. Nos cinq jobs y ont réussi sans aucun Mac à nous. Codemagic donne aux particuliers 500 minutes macOS M2 gratuites par mois, d’après sa page de tarifs au 19 octobre 2026. Si vous publiez chaque semaine pendant des années, un Mac d’occasion peut coûter moins cher que la location. Louez quand vous devez ouvrir Xcode : erreurs de signature, simulateur, ou archive à envoyer.

Questions fréquentes

Godot peut-il exporter vers iOS sous Windows ?

+

La documentation de Godot dit d’exporter depuis macOS. Dans notre test d’octobre 2026, Godot 4.7.2 sous Windows et Linux a quand même écrit le projet Xcode. Il a prévenu que le .ipa ne peut être construit que sous macOS. Un Mac l’a ensuite compilé.

Faut-il un Mac pour publier un jeu Godot sur l’App Store ?

+

Oui, pour la dernière étape. Xcode compile, signe et envoie l’app, et Xcode ne tourne que sous macOS. Un Mac loué ou un runner CI macOS couvre cette étape.

Qu’est-ce que l’App Store Team ID dans l’export iOS de Godot ?

+

C’est le code de 10 caractères de votre équipe Apple Developer, comme ABCDE12XYZ. Ce n’est pas votre nom. La documentation de Godot dit que vous le trouvez sur developer.apple.com, à côté de votre nom.

Pourquoi mon build Godot pour simulateur iOS échoue-t-il avec le symbole _main non défini ?

+

Dans notre test, le modèle officiel 4.7.2 avait une bibliothèque pour simulateur en x86_64 seulement. Sur un Mac Apple silicon, ajoutez ARCHS=x86_64 à la commande xcodebuild. L’app tourne alors via Rosetta.

Où placer les modèles d’export Godot sur une machine sans écran ?

+

Décompressez le .tpz et renommez son dossier templates d’après la version, par exemple 4.7.2.stable. Sous macOS, placez-le dans ~/Library/Application Support/Godot/export_templates. Sous Linux, utilisez ~/.local/share/godot/export_templates.

Puis-je exporter un projet Godot C# vers iOS depuis Windows ?

+

Non. Le code source de Godot bloque l’export iOS en C# sur les systèmes autres que macOS. Godot qualifie aussi C# sur iOS d’expérimental. Exportez les projets C# sur le Mac.

Guides associés