Les équipes qui louent des Mac distants dédiés (M4 / M4 Pro) à Singapour, Tokyo, Séoul, Hong Kong, US Est et US Ouest héritent encore de bibliothèques statiques x86_64 uniquement, de binaires CLT anciens ou d’artefacts universels. Ce guide formalise les irritants, une matrice, un runbook en six étapes, des KPI et le FinOps de bail, avec des liens vers Flutter/React Native sur un même hôte, l’hygiène DerivedData et miroirs CocoaPods/SPM & disque.
Sans drapeau REQUIRES_ROSETTA, même un M4 brûle des minutes en mauvaises relances de link et cleans agressifs. Traitez ARCHS comme la concurrence des runners (self-hosted).
Rosetta n’est pas gratuit : mémoire unifiée et SSD en subissent le pic, surtout combiné au double stack mobile.
Les régions corrigent latence et mix de bail ; si les miroirs sont alignés mais les builds restent rouges, revenez à ARCHS avant le guide multi-région.
| Axe | arm64 natif | Mix / Rosetta | Ligne rouge |
|---|---|---|---|
| Graphe de lien | lipo arm64 partout |
Inventaire x86 + date de fin | Archives statiques mixtes sans xcframework |
| Horloge | Faible variance | Variance suivie à part | >35% sans incident réseau |
| Mémoire | Monter la concurrence prudemment | Concurrence −1, pas de lourd Simulator mixte | Swap croissant |
| SSD | Croissance prévisible | Binaires universels = hygiene plus fréquente | <12 Go libres |
| Bail | Jour/semaine suffisent souvent | Petit bail « burn-in » compat | Bail principal sans ligne budgétaire Rosetta |
Principe : Rosetta 2 traduit dynamiquement ; ce n’est pas du CPU « gratuit »—cela change la forme des pics et la reproductibilité.
uname -m et lipo -info en tête de job.ARCHS autorisés.set -euo pipefail echo "machine: $(uname -m)" find "$WORKSPACE/Pods" -name "*.a" -maxdepth 6 2>/dev/null | head -n 40 | while read -r f; do echo "---- $f" lipo -info "$f" || file "$f" done xcodebuild -scheme "$SCHEME" -configuration Debug ONLY_ACTIVE_ARCH=YES ARCHS=arm64
Pas de politique d’architecture auditable.
MACCOME propose des Mac mini M4 / M4 Pro bare-metal avec baux flexibles sur six régions clés lorsqu’il faut aligner politique ARCHS, concurrence et scripts de nettoyage avec les chemins chauds Git/artefacts.
ARCHS_POLICY.md + BINARY_INVENTORY.csvCoordonner avec FinOps monorepo pour éviter les budgets contradictoires.
Tout est xcframework, CI iOS arm64 uniquement, pas d’universel macOS → articles Runner/Simulator.
FAQ
EXCLUDED_ARCHS=arm64 pour ne sortir que x86_64 ?
Legacy documenté seulement. Voir tarifs.
Les binaires universels saturent-ils les SSD courts ?
Oui—fenêtres de nettoyage + 1TB/2TB. Commander / pages d’aide.