Vérifiez l’appareil avant de commencer
Récupérez les informations de livraison, vérifiez la région, l’adresse et l’empreinte de l’hôte, puis modifiez le mot de passe initial et conservez une trace locale de la vérification.
Il ne s’agit pas d’une présentation théorique, mais d’un parcours opérationnel à suivre étape par étape. Vérifiez d’abord l’identité et sécurisez le Mac physique dédié, puis préparez Xcode, les éléments de signature et les tâches automatisées. En cas d’anomalie, recueillez les sorties réseau et les journaux de build selon un format cohérent.
Saisissez une commande, un outil ou un symptôme, par exemple « empreinte de l’hôte », « Archive », « DNS » ou « mot de passe ». Vous pouvez aussi filtrer par thème ; le filtre agit uniquement sur les cartes ci-dessous et ne masque pas les sections complètes.
Récupérez les informations de livraison, vérifiez la région, l’adresse et l’empreinte de l’hôte, puis modifiez le mot de passe initial et conservez une trace locale de la vérification.
Vérifiez les chemins de Xcode et des outils en ligne de commande, isolez le trousseau de signature et séparez les répertoires du code source, du cache, des archives et des exports.
Figez la version du code, restaurez le cache, chargez la signature, archivez, exportez les artefacts, puis validez les fichiers et les journaux dans un format lisible par machine.
Vérifiez séparément la connectivité, le chemin, la résolution et le port cible. Ne remplacez pas un diagnostic complet par un seul ping ou un journal tronqué.
Modifiez le mot de passe dès la première connexion, verrouillez la session graphique avant de vous éloigner et retirez les clés, jetons et éléments de signature avant d’envoyer un ticket.
Essayez de raccourcir les mots-clés ou sélectionnez « Tous ». Si le problème concerne une commande ou un nœud précis, connectez-vous à la console et envoyez un ticket avec l’heure et les journaux complets.
RunnerVM fournit un Mac mini physique dédié, et non une machine virtuelle. Lors de la première utilisation, l’objectif n’est pas d’exécuter rapidement des commandes, mais de confirmer que vous êtes connecté à l’appareil correspondant à la commande et de remplacer l’accès initial par les paramètres de sécurité de votre équipe.
Vérifiez l’identifiant de commande, la région du nœud, l’adresse de connexion, le port SSH, les paramètres VNC et le nom d’utilisateur initial. Ne transférez pas les identifiants complets par messagerie ; dans une équipe, ne communiquez que les champs nécessaires à l’opérateur concerné.
Comparez caractère par caractère l’empreinte affichée dans la console avec celle du premier avertissement SSH. Si l’algorithme ou le condensat diffère, interrompez la connexion et envoyez un ticket. Ne contournez pas l’anomalie en supprimant l’entrée locale de known_hosts.
Connectez-vous avec l’hôte, le port et le nom d’utilisateur fournis dans la commande. Après la connexion, exécutez d’abord sw_vers,uname -m et hostname, puis inscrivez la version du système, l’architecture Apple Silicon et le nom de l’appareil dans le rapport de livraison.
Dans votre client VNC local, saisissez l’adresse, le port et le mot de passe indiqués dans la console. Lors de la première connexion, utilisez la résolution par défaut pour vérifier le clavier, le pointeur et le redimensionnement des fenêtres ; augmentez ensuite la taille d’affichage une fois la session stabilisée.
Modifiez immédiatement le mot de passe initial, vérifiez les clés publiques SSH et les droits administrateur, et ne conservez que les accès nécessaires aux tâches. Reconnectez ensuite SSH et VNC pour confirmer les nouveaux identifiants avant d’importer le projet ou les éléments de signature.
Voici l’ordre d’une tâche de build courante avec les sorties SSH, xcodebuild et fastlane. Remplacez l’hôte, l’espace de travail, le Scheme, la configuration d’export et la lane par les valeurs réelles du projet ; ne copiez pas ces commandes telles quelles en supposant qu’elles conviennent à tous les dépôts.
$ ssh -p 22 runner@10.0.0.12
Host key fingerprint: SHA256:…
$ sw_vers
ProductName: macOS
$ uname -m
arm64
$ xcodebuild archive \
-workspace RunnerApp.xcworkspace \
-scheme RunnerApp \
-archivePath build/RunnerApp.xcarchive
** ARCHIVE SUCCEEDED **
$ bundle exec fastlane ios build
[08:42:16]: Resolving signing settings
[08:43:02]: Archive completed
[08:43:11]: Export verified
[08:43:11]: fastlane finished successfully
Les problèmes d’environnement ne se résument généralement pas à « Xcode s’ouvre-t-il ? », mais à la cohérence entre le choix de l’interface graphique, le chemin de la ligne de commande, les déclarations du projet et le contexte de signature. Suivez l’ordre ci-dessous pour distinguer plus vite les problèmes de chaîne d’outils de ceux du projet.
Exécutez xcodebuild -version et xcode-select -p. Si plusieurs versions sont installées sur le nœud, identifiez d’abord celle requise par le projet, puis changez le répertoire développeur afin que l’interface graphique et les tâches automatisées utilisent la même version.
Exécutez xcrun --find xcodebuild,xcrun simctl list et une résolution du projet sans signature. Si un outil est absent ou si la liste des SDK est anormale, réparez d’abord la chaîne d’outils au lieu de modifier directement les fichiers du projet.
Placez les certificats utilisés par les tâches automatisées dans un trousseau séparé, avec une procédure de déverrouillage explicite et un périmètre d’accès minimal. N’écrivez jamais le mot de passe dans le dépôt, les paramètres du script ou les journaux de build.
Notez le nom du certificat, sa période de validité, l’identifiant d’équipe et l’UUID du profil de provisioning, puis vérifiez que le Bundle Identifier correspond à la configuration cible. Après l’import, utilisez security find-identity -v -p codesigning pour vérifier les identités disponibles.
Séparez le code source, le cache des dépendances, DerivedData, Archive, Export et les journaux. Utilisez un chemin d’archive unique pour chaque tâche ; le cache partagé ne doit contenir que des éléments reconstructibles, jamais des éléments de signature.
L’objectif de l’automatisation n’est pas de déplacer un script local vers un serveur distant, mais de rendre reproductibles les entrées, l’environnement, la signature et les sorties. Chaque étape doit produire une trace claire afin d’identifier rapidement l’étape en échec.
Utilisez un hash de commit ou un tag protégé, sans dépendre de la tête d’une branche susceptible d’avancer. Enregistrez la version des sous-modules, l’état de Git LFS et l’état de propreté du dépôt.
git checkout --detach <commit>
La clé de cache doit au minimum inclure le condensat des fichiers de verrouillage, la version des outils et l’architecture. En cas d’absence du cache, installez normalement ; ne faites pas d’un cache obligatoire une condition de réussite du build.
bundle check || bundle install
Déverrouillez le trousseau dédié, importez le profil correspondant et vérifiez les identités de signature disponibles. Aucune clé ni aucun mot de passe ne doit apparaître dans la sortie standard.
security find-identity -v -p codesigning
Spécifiez explicitement l’espace de travail, le Scheme, la Configuration, la Destination et le chemin d’archive. Conservez le journal complet et le code de sortie de xcodebuild.
xcodebuild archive …
Versionnez la configuration d’export, sans y inclure de secrets. Séparez les répertoires d’export et d’archive pour éviter d’écraser le xcarchive original lors d’une nouvelle exécution.
xcodebuild -exportArchive …
Vérifiez l’existence, la taille, le condensat et les informations de signature des fichiers, ainsi que le code de sortie. Associez l’identifiant de l’artefact à la version du commit, à la version de Xcode et au chemin des journaux.
shasum -a 256 build-output
Le bureau distant convient à la configuration graphique initiale, à la vérification de l’état de l’interface Xcode et aux tâches nécessitant une confirmation visuelle. La poursuite du build ne doit pas dépendre du maintien de la fenêtre VNC locale.
Utilisez strictement l’adresse, le port, le nom d’utilisateur et le mot de passe affichés dans la console. Même si le client prend en charge un fichier de configuration, n’y inscrivez pas le mot de passe en clair dans un fichier synchronisable.
Lors de la première connexion, utilisez la taille par défaut. Une fois l’interaction stable, augmentez progressivement la résolution ; en cas de latence, réduisez d’abord la profondeur de couleur et la taille d’affichage, puis vérifiez le chemin réseau.
Verrouillez la session graphique avant de vous éloigner de l’appareil ; fermer le client VNC ne remplace pas le verrouillage. Lors d’un changement d’équipe, révoquez les accès devenus inutiles.
Les builds persistants doivent s’exécuter dans un CI runner, launchd, tmux ou une autre session récupérable. Effectuez un test de déconnexion volontaire pour confirmer que la tâche et les journaux continuent de s’écrire.
Confirmez la région de la commande, le nom de l’appareil et l’utilisateur actuellement connecté.
Ne vous fiez pas uniquement à l’affichage à l’écran pour savoir si le build est toujours en cours.
Après la déconnexion, vérifiez via SSH le processus, la progression du journal et l’état de sortie.
Supprimez les clés publiques temporaires, les fichiers à usage unique et les identifiants devenus inutiles.
Un problème réseau doit préciser « depuis où, à quelle heure, vers quelle cible et avec quelle sortie complète ». Une capture isolée ou la phrase « la connexion est lente » ne permet pas de distinguer réseau local, chemin interrégional, DNS, stratégie de ports et état du service cible.
Envoyez un nombre fixe de paquets et conservez les latences minimale, moyenne et maximale ainsi que le taux de perte. Une seule réponse ne représente pas la qualité de toute la connexion.
ping -c 20 target-host
Exécutez la commande depuis le réseau source concerné et conservez tous les sauts. L’absence de réponse d’un nœud intermédiaire ne signifie pas une rupture ; vérifiez aussi l’accessibilité de la cible finale.
traceroute target-host
Notez le serveur DNS utilisé, les adresses renvoyées et la durée de la requête. Si les résultats diffèrent selon les réseaux, envoyez les sorties des deux côtés sans les réécrire manuellement.
dig target-host
Testez séparément le port SSH ou celui réellement utilisé par le projet. Une connexion réussie prouve uniquement l’accessibilité TCP, pas la réussite de l’authentification ni du protocole applicatif.
nc -vz target-host 22
Retirez les mots de passe, clés privées, jetons et données métier avant l’envoi, mais conservez les horodatages, codes d’erreur, sauts de chemin et paramètres des commandes.
Les questions avant-vente, demandes générales et informations sans lien avec une commande peuvent être envoyées par e-mail. Pour un nœud, un échec de build, un problème de connexion ou une facture, connectez-vous à la console et envoyez un ticket afin de l’associer à la commande et de suivre son traitement.
Choisissez le parcours de première connexion, de préparation d’environnement, d’automatisation ou de diagnostic réseau. Notez les étapes exécutées, les commandes, les résultats et le point de première apparition de l’anomalie.
Fournissez l’identifiant de commande, la région du nœud, l’heure du problème, les étapes de reproduction, les résultats attendus et observés ainsi que les journaux complets après masquage des données sensibles. Pour un problème de build, indiquez aussi le commit et la version de Xcode.
Choisissez la catégorie la plus proche du problème et joignez les journaux ou insérez-les dans un bloc de code. Un ticket doit traiter un seul problème ; ne mélangez pas réseau, build et facturation.
Après un nouveau test, répondez au ticket existant avec la nouvelle heure, les commandes et les sorties. Même en cas d’urgence, consultez l’état depuis la console au lieu de créer plusieurs tickets identiques.
Convient aux échecs de connexion, anomalies de nœud, problèmes d’environnement de build, vérifications de facturation et demandes nécessitant un suivi. Le ticket peut être associé à la commande et conserver toute la chronologie du traitement.
Convient au choix d’offre avant-vente, à la confirmation d’un processus, aux signalements de sécurité et aux demandes sans lien avec un nœud. Indiquez la catégorie dans l’objet et n’incluez aucun mot de passe ni aucune clé dans le message.
La page de contact liste les informations obligatoires pour les demandes avant-vente, techniques, de facturation et de sécurité ; utilisez-la pour vérifier votre dossier avant l’envoi.
Les réponses suivantes servent à distinguer livraison de l’appareil, modes de connexion, tâches de build et éléments d’assistance, afin d’éviter les essais dans la mauvaise direction.
Non. La commande correspond à un Mac mini physique dédié, modèle Runner M4 : Mac Mini M4, 16GB RAM, 256GB SSD. La connexion à distance est uniquement un mode d’accès et ne transforme pas le service en ressource virtuelle partagée.
Cela dépend du mode de lancement. Un CI runner, launchd, tmux ou un processus d’arrière-plan indépendant ne dépend généralement pas de la fenêtre VNC ; une tâche interactive liée à la session graphique peut être affectée. Avant la mise en production, déconnectez-vous volontairement une fois et vérifiez le processus, les journaux et l’état de sortie.
Préparez des clients SSH et VNC fonctionnels, le mode de conservation des identifiants de l’équipe, la version de Xcode requise par le projet, la liste des éléments de signature et un processus de gestion des secrets qui n’écrit rien dans le dépôt. Après réception des informations, vérifiez d’abord l’empreinte de l’hôte et l’identité de l’appareil.
Non, pas automatiquement. Runner M4 peut être commandé à la journée, à la semaine, au mois ou au trimestre ; la période et l’état de la commande sont ceux indiqués dans la console. Pour vérifier une commande précise, envoyez un ticket associé depuis la console.
Exportez d’abord les archives, artefacts et journaux anonymisés à conserver, puis nettoyez le workspace source, le trousseau de signature temporaire, les profils, les clés publiques temporaires, les jetons d’accès et les données sensibles du cache du projet. Ne conservez pas d’identifiants en clair dans l’historique shell ou les paramètres de script.
Testez d’abord la latence et le chemin vers la région cible depuis le réseau professionnel ou la source CI réelle, puis tenez compte du fuseau horaire de l’équipe et du sens de transfert des artefacts. Runner M4 est disponible à la commande sur cinq nœuds : Singapour, Tokyo, Séoul, Hong Kong et côte Est des États-Unis. La disponibilité réelle est indiquée en temps réel dans la console.
Choisissez Runner M4 et la région cible, finalisez la commande, puis suivez cette page pour vérifier la connexion, préparer la chaîne d’outils et exécuter votre première tâche de build reproductible.