Frictions · matrice · huit étapes VNC · quatre faits · changement de nœud
Si vous utilisez un Mac cloud loué en VNC, vous finirez par rencontrer trois familles de ruptures de continuité : coupure réseau, réveil depuis la veille ou Power Nap, et maintenance ou migration de nœud côté hébergeur. Les symptômes se ressemblent : Xcode s’ouvre, mais l’Archive se bloque, la signature échoue, le Simulateur reste noir, ou xcodebuild ne « voit » plus un SDK. L’erreur coûteuse n’est pas le bouton Reconnexion manqué, mais l’incertitude sur ce qu’il faut réparer en premier — réseau, trousseau ou toolchain. Ce guide adopte un angle opérationnel 2026 : une liste de friction, une matrice de décision et huit vérifications prioritaires en VNC, plus quatre paramètres réutilisables dans un ticket et des FAQ. En une dizaine de minutes vous devriez isoler transport, toolchain ou certificats — et savoir quand changer de nœud plutôt que bricoler localement.
Le schéma compte parce que la facturation à la minute punit le débogage « mauvaise couche » : trente minutes à ré-exporter des certificats pendant que le DNS est périmé, ou nettoyer DerivedData en boucle alors que le trousseau login est verrouillé, brûle le même temps qu’un vrai bug toolchain sans laisser de procédure exportable. Un runbook reproductible — synchro d’heure, HTTPS sortant, déverrouillage trousseau, rafraîchissement des comptes, puis empreintes de version — transforme « ça marchait hier » en preuve auditable. Un retour par SSH seul est incomplet : on peut lancer sw_vers à distance, pas cliquer dans Safari pour rafraîchir une session ni franchir les invites de confidentialité macOS. Enchaînez avec la première utilisation (30 minutes) et la checklist renouvellement et changement de nœud.
TCP de retour n’implique pas une session GUI saine : après VNC, macOS peut rester à moitié éveillé — DNS périmé, horloge de la barre de menus décalée, rafraîchissement de jeton retardé — pendant que Comptes Xcode semble encore connecté.
La veille peut verrouiller le trousseau : les politiques d’énergie laissent le trousseau login fermé ; la signature échoue silencieusement jusqu’à l’Organizer.
Changer de nœud change le contexte d’identité : même Apple ID, mais UUID machine, entrées de trousseau et caches de provisioning diffèrent — alignez la checklist de migration avant le code.
Orphelins DerivedData et Simulateur : coupures brutales, démons de build et processus incohérents ; nettoyage ordonné plutôt que réinstallation OS.
Illusion utilisateur SSH vs VNC : les chemins xcode-select vus en SSH peuvent ne pas correspondre à l’utilisateur GUI qui lance Xcode.
Les équipes qui mélangent automatisation SSH et travail manuel dans Xcode doivent traiter la reprise après coupure comme un problème à deux canaux : documentez quel utilisateur détient l’identité de signature et quel profil terminal sert aux contrôles de parité CI.
| Scénario | D’abord | Puis | Enfin | Erreur fréquente |
|---|---|---|---|---|
| Coupure réseau, même nœud | Vérifier l’heure et l’atteignabilité | Déverrouiller le trousseau, rafraîchir Comptes | Clean + un seul Run | Incriminer les certificats quand le DNS est vieux |
| Veille / capot / inactivité distante | Attendre 30–60 s après réveil avant Xcode | Trousseau et politique d’écran verrouillé | Redémarrer le service Simulateur | Enchaîner Run avant déverrouillage |
| Nouveau nœud / nouvelle image | Comparer hostname et version macOS | Certificats et profils migrés ? | Smoke Archive minimal | Réutiliser des chemins absolus de l’ancien nœud |
| Entreprise ou pile proxy | Guide réseau d’entreprise et tunnel SSH | puis ligne « même nœud » | Test A/B hotspot | Réparer Xcode avant le chemin réseau |
Comme dans les autres guides VNC : invites système, déverrouillage trousseau et ré-auth web sur un bureau VNC ; SSH sert aux empreintes.
Réseaux d’entreprise et de campus : votre portable joint le nœud en split tunnel tandis que Safari sur le Mac doit joindre Apple directement. Quand coupure et politique coexistent, corrigez d’abord le chemin, puis la ligne « même nœud, coupure ».
Réglages Système : Général → Date et heure. Activer l’heure automatique ; une dérive manuelle casse signature et jetons.
Barre menu réseau : joindre developer.apple.com. Test minimal dans Safari ; le split tunnel imite des échecs de certificat.
Accès au trousseau : trousseau login déverrouillé ; certificat de distribution + clé privée ; cycle verrouiller/déverrouiller si besoin.
Xcode → Réglages → Comptes : actualiser ; si les téléchargements échouent, resigner la session.
Empreintes Terminal (SSH ou Terminal VNC) :
sw_vers xcodebuild -version xcode-select -p
À coller au ticket ; xcode-select doit pointer vers la Xcode.app voulue.
Nettoyage DerivedData minimal : d’abord Clean Build Folder ; escalade sélective selon l’article disque.
Simulateur : tout quitter → booter la cible. Essayer effacement avant réinstaller Xcode.
Smoke signature : Run + compte visible dans Organizer. Échec seulement sur nouveau nœud ? Traiter d’abord comme migration.
Fait 1 : Attendre 30–60 secondes après réveil avant les grosses apps GUI réduit les faux blocages dus au framebuffer VNC incomplet.
Fait 2 : En dessous d’environ 10–15 % d’espace libre, la pression APFS peut se manifester par des échecs de build aléatoires après reconnexion — voir l’article disque avant une longue analyse de signature.
Fait 3 : Lors d’un changement de nœud, archiver ensemble export certificat + UUID de profil + xcodebuild -version pour séparer dérive d’environnement et code.
Fait 4 : Si le tunnel SSH fonctionne mais pas le VNC direct, des chemins séparés peuvent permettre git pull tout en bloquant Comptes — aligner les tunnels.
Ces nombres cadrage l’attente des tickets support. Joignez : capture de l’heure barre de menu, test Safari developer.apple.com, sw_vers, xcodebuild -version, pourcentage d’espace libre, et si le problème n’apparaît qu’après migration.
Si réseau et trousseau sont sains mais seul le Simulateur échoue : mettre à jour ou réinstaller le runtime iOS, pas macOS. Si seule la signature casse sur un nouveau nœud : checklist de migration. Si toutes les apps GUI plantent au hasard : journaliser la chronologie — changer de nœud bat souvent la chirurgie locale.
Rétrograder macOS sur métal loué est rarement économique ; exprimez les besoins en tags d’image + étapes VNC reproductibles.
Pour un ticket de migration, utilisez la gravité : signature bloquante sur tout projet propre suggère dérive d’identité ou de profil ; un seul dépôt pointe plutôt vers réglages projet ou schémas. Comparez des extraits redacted de xcodebuild -showBuildSettings avec une machine saine. Si l’hébergeur tourne les images chaque semaine, épinglez le flux sur une paire OS + Xcode documentée comme une image Docker de base.
Checklist 30 minutes : session graphique et toolchain.
Lire →Export, profils, certificats avant migration.
Lire →Nettoyage ordonné quand l’espace manque.
Lire →Quand le Terminal marche mais pas Comptes.
Lire →Déverrouiller le trousseau login ; vérifier certificat + clé privée ; après changement de nœud, réimporter ou suivre le fournisseur ; étape 8 de la section 3.
Souvent non : quitter Simulateur et Xcode, réduire DerivedData ou redémarrer les services ; sinon section 5.
Souvent les branches ont divergé ; résoudre l’état de fusion avant d’accuser Xcode.
Les commandes oui ; déverrouillage trousseau et flux web des comptes exigent VNC.
Sur une machine possédée, un reboot occasionnel passe encore. En cloud facturé, les essais au hasard brûlent le budget. SSH affiche des empreintes mais ne remplace pas une récupération séquentielle trousseau et comptes sur un vrai bureau.
Le coût caché du « simple reconnect » est l’état implicite : TTL DNS, expiration de jeton, mises à jour CoreSimulator partielles. Un bureau macOS visible via VNC permet de valider les mêmes indices qu’un ingénieur sur site.
Pour un retour rapide vers un état buildable, signable et partageable à l’écran, un service de Mac distant à VNC stable (comme VNCMac) coûte souvent moins que des lots opaques. Wiki : id nœud / dernier Archive réussi / smoke après déverrouillage trousseau.