Mon poste du quotidien, c’est un portable léger : Swift, Storyboards, Slack, pas de souci. Mais dès que j’appuie sur Run — ou qu’un gros PR déclenche un rebuild complet — le spectacle recommence : ventilo à fond, trackpad chaud, swift-frontend qui monopolise le CPU, l’autocomplétion en diaporama. Derived Data, redémarrage d’Xcode, prière pour Indexing… Vous l’avez fait. Ce qui m’a aidé : ne pas tout faire sur cette machine ; envoyer xcodebuild, l’indexation longue et les Archives sur un Mac branché en permanence.
Aujourd’hui : portable léger en local + Mac mini M4 dédié dans le cloud. Le portable code et réunit ; le Mac en rack compile, simule, signe. En équipe Windows-first, voir Xcode depuis Windows. MacBook Pro ? TCO achat vs location ; pour la CI, runners macOS self-hosted. Ci-dessous : mon vrai workflow, pas une slide achat.
1) Xcode rame surtout parce que la machine digère trop
SourceKit sur tout le dépôt, Indexing sur le disque, le linker en Clean Build, le simulateur sur la RAM — cumulé. Les ultrabooks brident pour l’autonomie. Le guide efficacité de build m’a fait gagner quelques minutes, pas une après-midi de Cleans répétés.
En déplacement, je ne veux pas un portable qui Archive sur le Wi‑Fi d’hôtel. Depuis que je compile sur un Mac mini M4 en datacenter, le portable redevient un terminal — différence plus nette qu’un changement de CPU.
2) Répartition : coder ici, builder là-bas
- Local : Git, Cursor/VS Code, maquettes. Build via SSH, ventilo au calme.
- Mac mini M4 cloud : Xcode complet, Derived Data fixe,
xcodebuild archive. Le dédié compte — pas un Mac partagé où un collègue remplit le disque. - CI (option) : runner macOS self-hosted, push, café, PR verte ou rouge.
Je choisis la région selon Git, pas ma fibre. Les VM macOS partagées m’ont fait perdre du temps sur signature et perf — cf. VM vs Mac mini nu.
3) Trois modes — je commencerais par B
| Mode | Local | Cloud M4 | Pour qui |
|---|---|---|---|
| A Xcode 100 % distant | SSH/VNC | GUI, sim, builds | Portable non-Mac |
| B Hybride (mon défaut) | Édition, push | xcodebuild | Complétion locale, pas de ventilo |
| C CI seulement | Xcode local au quotidien | Runner 24/7 | Beaucoup de PR |
En solo, B : SwiftUI le jour, push le soir, Archive TestFlight sur le cloud. Cursor ? Remote-SSH vers l’hôte cloud.
4) Ajouter un Mac cloud ?
| Signal | Optimiser le portable | Mac mini M4 cloud |
|---|---|---|
| Clean >5 min, plusieurs fois/jour | gain limité | déplacer les builds |
| Ventilo gêne les calls | pansement | compile ailleurs |
| Nouveau Xcode, macOS trop vieux | remplacer | image cloud à jour |
| Sim UI 2 h+/jour | Mac local utile | VNC ou partage des rôles |
| Hors ligne avion | build local requis | cloud ne remplace pas |
Je chronomètre un Archive sur le vrai dépôt — plus honnête qu’un article bench.
5) Mise en place
- Région proche GitHub/GitLab et artefacts.
- Xcode en SSH, bonne version ; notes de version.
export DERIVED_DATA_PATH=~/DerivedDatadans~/.zshrc.git pull, Fastlane Match, VNC si confiance appareil.ssh build@cloud-mac 'cd ~/app && xcodebuild -scheme App -destination generic/platform=iOS build'
Peu importe le « gigabit maison » : SSH stable et upload IPA propre. Premier build plein = cache Derived Data chaud.
6) Pièges déjà vus
Deux Derived Data (local + cloud) = Xcode « fantôme ». UI au pixel près → Sim cloud en VNC ; tests → appareil local, IPA cloud. SWIFT_EXEC_JOBS un peu plus haut sur M4 si la RAM suit. Ne pas mélanger VNC et jobs CI — capacité runner.
7) Louer une 2ᵉ machine de build
Semaine pour une release, mois pour la CI. Tarifs, TCO. Bureau virtuel complet : location Mac cloud.
8) Questions des collègues
Plus lent ? Les clics oui ; builds >10 min souvent plus rapides sur M4 cloud. Hybride gagne.
Windows seulement ? Oui — article.
vs VPS Mac ? Signature App Store + CI stable → Apple Silicon dédié.
Sécurité ? Comme un Mac mini au bureau : clés SSH, pas de p12 dans Git.
Premier Archive ? Une après-midi si habitué ; centre d’aide.
Vieux Mac ? Si pas de full build local, gardez-le ; louez le cloud pour compiler.
Ce que j’utilise en prod (pour comparaison)
Ma machine de build : Mac mini M4 dédié chez Nuvcloud (SSH/VNC, facturation jour/semaine/mois), pas une VM macOS partagée.
Testez une journée sur votre dépôt réel — tarifs & régions · démarrer