Compiler votre jeu Unity pour iOS depuis Windows
Unity sous Windows peut cibler iOS, mais il s’arrête à mi-chemin. Il écrit un projet Xcode, et seul Xcode sur un Mac peut en faire une app. Ce guide montre comment déplacer le projet sur un Mac et l’archiver. Il couvre aussi les builds dans le cloud d’Unity, qui se passent complètement de Mac.
Ce que fait Unity sous Windows, et ce qui demande le Mac
La page de configuration iOS d’Unity dit que Xcode n’existe que pour macOS. Donc si votre machine ne tourne pas sous macOS, vous ne pouvez pas compiler l’app en local. Unity compile pour iOS en deux étapes. Unity écrit un projet Xcode, puis Xcode compile l’app à partir de lui.
Sous Windows, vous n’avez que la première étape. L’option Run in Xcode n’apparaît que quand Unity tourne sous macOS. La deuxième étape fait un vrai travail. La documentation d’Unity dit que Xcode y lance IL2CPP, qui compile le C++ issu de vos scripts dans libGameAssembly.a.
Étape 1 : exporter le projet Xcode sous Windows
- Ajoutez le module iOS Build Support à votre éditeur dans Unity Hub.
- Ouvrez File, puis Build Profiles, et faites d’iOS la plateforme active.
- Cliquez sur Build et choisissez un dossier vide, par exemple Builds/iOS.
Le dossier contient Unity-iPhone.xcodeproj. La documentation d’Unity décrit deux cibles à l’intérieur. Unity-iPhone est un lanceur minimal, et UnityFramework contient le runtime et votre code. Ne touchez pas aux dossiers Data et Libraries, car Unity les régénère à chaque build.
Étape 2 : le copier sur le Mac
Windows inclut tar depuis le build 17063 de Windows 10. Le client scp vient avec OpenSSH pour Windows, une fonctionnalité facultative depuis le build 1809. Si scp manque, ajoutez OpenSSH Client dans les fonctionnalités facultatives. Empaquetez le dossier, copiez-le via Tailscale, et décompressez-le sur le 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"
Depuis Linux ou WSL, rsync n’envoie que ce qui a changé depuis la dernière copie. Cela aide après de petites modifications sur un gros jeu.
rsync -az --delete Builds/iOS/ you@your-mac:~/MyGame/iOS/
Git marche aussi, mais un export complet est gros et change à chaque build. La plupart des équipes copient l’export et gardent git pour le projet Unity.
Étape 3 : archiver sur le Mac
Vous pouvez ouvrir le .xcodeproj dans Xcode via l’écran du Mac. Choisissez le scheme Unity-iPhone et Any iOS Device, puis Product, puis Archive. Ou restez dans le terminal en SSH. Listez d’abord les cibles et les schemes :
cd ~/MyGame/iOS xcodebuild -list -project Unity-iPhone.xcodeproj
Puis archivez avec le scheme du lanceur. CODE_SIGNING_ALLOWED=NO produit une archive de test sans certificat, qui prouve que le projet compile.
xcodebuild -project Unity-iPhone.xcodeproj -scheme Unity-iPhone \ -configuration Release -destination 'generic/platform=iOS' \ -archivePath build/Game.xcarchive archive \ CODE_SIGNING_ALLOWED=NO
Pour publier, retirez cette option et signez avec votre équipe. Exportez ensuite avec -exportArchive et un ExportOptions.plist qui utilise la méthode app-store-connect. Notre guide de publication donne les commandes complètes de signature et d’envoi.
Certains jeux utilisent l’External Dependency Manager de Google pour les SDK iOS. Il écrit un Podfile et lance CocoaPods après le build. Si votre export contient un Podfile, lancez pod install sur le Mac. Compilez ensuite le .xcworkspace au lieu du .xcodeproj. CocoaPods n’est pas préinstallé, donc ajoutez-le avec brew install cocoapods.
Ce que nous avons testé, et ce que nous n’avons pas testé
Unity ne peut pas tourner en CI sans licence, donc nous n’avons pas exporté un vrai jeu Unity. À la place, nous avons testé la partie Mac sur un projet de remplacement de même forme : une cible d’app lanceur et une cible framework. Le 19 octobre 2026, le runner macos-26 de GitHub l’a archivé avec Xcode 26.6. Ensuite, un runner Windows l’a empaqueté avec le tar de Windows. Un deuxième Mac a décompressé cette copie et l’a archivée à nouveau.
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 **Un vrai jeu prend beaucoup plus de temps, car le Mac compile tout le code IL2CPP. Si un build s’arrête sur Permission denied pour un fichier .sh, la copie a perdu son droit d’exécution. Lancez chmod +x sur ce fichier et recompilez.
L’option cloud : Unity Build Automation
La documentation d’Unity conseille Build Automation à ceux qui n’ont pas de Mac. Il compile votre jeu sur les serveurs d’Unity. Depuis le 1er mars 2026, Unity inclut 100 minutes de build Mac par mois. Ensuite, une machine Mac standard coûte $0.07 la minute de build, d’après l’article d’Unity sur les frais DevOps.
Qui ne devrait pas louer un Mac pour ça
- Quelques builds par mois. Les 100 minutes Mac gratuites d’Unity Build Automation peuvent vous suffire, sans aucun Mac.
- Des builds à chaque commit. Un service CI ou un runner macOS self-hosted convient mieux que copier des dossiers à la main.
- Le travail iOS quotidien. Si vous êtes sur un Mac tous les jours, en acheter un peut revenir moins cher sur un an.
Quand un Mac loué convient
Certains problèmes demandent d’ouvrir Xcode. Les erreurs de signature, les erreurs de link de plugins et les crashs dans le simulateur se corrigent plus facilement à la main. Un pass journée MacRun est un Mac mini M6 dédié pour $15, et une semaine coûte $59. Xcode 27.1 est la version par défaut et Xcode 26.6 est installé aussi. Vous vous connectez depuis Windows avec Tailscale et n’importe quel client VNC.
Le Mac est effacé à la fin du pass. Téléchargez votre .ipa et poussez vos modifications avant. Pour un vrai iPhone, envoyez le build via TestFlight, car un Mac distant ne voit pas un téléphone branché sur votre PC. Notre guide pour créer des apps iOS sous Windows compare Unity aux autres moteurs.
Questions fréquentes
Unity peut-il compiler une app iOS sous Windows ?
+
Seulement à moitié. Unity sous Windows écrit le projet Xcode. La documentation d’Unity dit que Xcode n’existe que pour macOS, donc l’app elle-même se compile sur un Mac ou dans Unity Build Automation.
Comment compiler un projet Xcode Unity en ligne de commande ?
+
Sur le Mac, lancez xcodebuild -list pour voir les schemes. Puis lancez xcodebuild archive avec le scheme Unity-iPhone et une destination iOS générique. Exportez l’archive avec -exportArchive pour obtenir un .ipa.
Quelle version de Xcode faut-il pour Unity ?
+
La documentation d’Unity 6.6 recommande Xcode 16 ou plus récent et prend en charge iOS 15 et plus. Un Mac MacRun a Xcode 27.1 par défaut et Xcode 26.6 installé aussi.
Combien coûte Unity Build Automation pour iOS ?
+
L’article d’Unity sur les frais DevOps, en vigueur depuis le 1er mars 2026, inclut 100 minutes de build Mac par mois. Ensuite, une machine Mac standard coûte $0.07 la minute de build.
Comment copier un build iOS Unity de Windows vers un Mac ?
+
Empaquetez le dossier d’export avec tar, que Windows inclut depuis le build 17063 de Windows 10. Copiez-le avec scp, puis décompressez-le sur le Mac. Depuis Linux ou WSL, rsync n’envoie que ce qui a changé.
Puis-je tester mon build iOS Unity sur un iPhone depuis un Mac distant ?
+
Pas en USB, car un Mac distant ne voit pas un téléphone branché sur votre PC. Envoyez le build sur TestFlight et installez-le sur le téléphone depuis là.