Figez d’abord les entrées, puis vérifiez l’environnement d’exécution
- Nœud
- JP · Debug M4
- Tâche
- Xcode Archive
- Accès
- Clé publique SSH
- Preuves
- Commandes, horodatage, logs anonymisés
DebugMac fournit des nœuds physiques Apple Silicon dédiés, pas des machines virtuelles. Vérifiez d’abord les identifiants, la région et la chaîne d’outils, puis utilisez les sorties de commande pour localiser les problèmes de connexion, de build, de stockage ou de réseau.
La sélection d’une catégorie localise et met en évidence le chapitre correspondant. Le reste du guide reste visible pour comparer les conditions en amont et en aval.
Préparez l’adresse, le nom d’utilisateur et la clé publique SSH, vérifiez d’abord l’empreinte, puis établissez les sessions en ligne de commande et graphiques.
De l’état du dépôt et de la chaîne d’outils à la signature et à l’export de l’archive, conservez les versions permettant de reproduire le résultat.
Limitez la concurrence, gérez explicitement les caches et répertoires temporaires, puis rapatriez les sorties de build essentielles dans le pipeline.
Confirmez les options avant l’activation, puis vérifiez après livraison la capacité du disque, le point de montage, le système de fichiers et la cible de lecture-écriture.
Réduisez progressivement le périmètre avec des tests de latence, de route, de port et de transfert, au lieu de conclure sur un seul ping.
Joignez l’identifiant de commande, la région, l’heure, les étapes de reproduction et les logs anonymisés afin de limiter les demandes répétées.
L’adresse, le nom d’utilisateur, l’empreinte de l’hôte et l’état d’activation indiqués dans le reçu de livraison doivent appartenir à la même commande. En cas d’écart, interrompez la connexion et vérifiez via un ticket dans le panneau.
Préparez la clé privée SSH locale, la correspondance avec la clé publique, le reçu de livraison et un réseau stable. Ne collez pas de clé privée, d’identifiants complets ni de configuration non anonymisée dans un ticket.
Relevez l’adresse de l’hôte, le nom d’utilisateur et l’empreinte dans le reçu de livraison ; conservez la clé privée dans un chemin local contrôlé et ne la transmettez ni par chat ni par ticket.
L’empreinte affichée lors de la première connexion SSH doit correspondre au reçu. Si elle change soudainement après une connexion antérieure, ne supprimez pas directement l’enregistrement local pour réessayer.
Exécutez d’abord des commandes en lecture seule pour confirmer l’identité, l’architecture Apple Silicon, l’heure système et l’espace disque disponible, puis ouvrez le dépôt ou le répertoire de build.
Vérifiez les identifiants de la session graphique, la résolution d’affichage et la disposition du clavier ; après la première ouverture, testez une déconnexion sécurisée puis une reconnexion.
Distinguez d’abord l’interruption du réseau local, l’inaccessibilité du port SSH et l’interruption de la session graphique. Si la ligne de commande reste disponible, enregistrez en priorité les logs et l’état de la tâche.
Notez l’heure locale, le texte complet de l’erreur et le résultat du contrôle du port effectué depuis le même réseau. Ne réinitialisez pas les identifiants en boucle : vous écraseriez l’état au moment du problème.
Un même commit peut produire des résultats différents selon Xcode, le fichier de verrouillage des dépendances ou les paramètres de signature. Pour diagnostiquer, figez d’abord les entrées et ne mettez pas plusieurs dépendances à niveau simultanément.
Consignez le hash du commit, la branche, l’état des sous-modules et les fichiers de verrouillage des dépendances. Vérifiez que l’espace de travail ne contient aucune modification non validée avant le build de référence.
Utilisez xcode-select -p et xcodebuild -version pour consigner le répertoire développeur actuel et la version de Xcode.
Vérifiez l’équipe du projet, l’identifiant de bundle, le nom de configuration et le mode de signature. Anonymisez d’abord les détails des certificats présents dans les logs.
Indiquez explicitement le workspace ou project, le scheme, la configuration et archivePath, puis conservez le code de sortie complet et les logs.
Une fois l’archive terminée, vérifiez la taille du fichier, sa somme de contrôle et le répertoire d’export, puis copiez les artefacts vers l’emplacement sécurisé convenu avec l’équipe.
git rev-parse HEAD
xcode-select -p
xcodebuild -version
xcodebuild -workspace "<WORKSPACE>" \
-scheme "<SCHEME>" \
-configuration Release \
-archivePath "<OUTPUT>/App.xcarchive" \
archive | tee "<LOG_DIR>/archive.log"
Le code de sortie est 0, le répertoire d’archive existe, la taille de l’artefact est conforme et les logs ne contiennent aucune erreur ignorée de signature ou de script.
Déterminez successivement s’il concerne la résolution des dépendances, la compilation, l’édition des liens, la signature, les scripts ou l’export, au lieu de résumer tout problème par « échec du build Xcode ».
Fournissez le hash du commit, la version de Xcode, la commande exécutée, le code de sortie, l’étape en échec et un extrait de logs anonymisé ; n’envoyez ni clé privée ni identifiants complets.
Les pipelines GitHub, GitLab et autres peuvent router les tâches macOS vers des nœuds dédiés. L’environnement d’exécution n’est pas partagé avec d’autres locataires, mais votre équipe doit toujours gérer la concurrence, les caches et le nettoyage.
Vérifiez d’abord qu’un pipeline passe entièrement, puis augmentez progressivement la concurrence. Plusieurs builds écrivant simultanément dans le même DerivedData, trousseau ou répertoire de sortie risquent de se polluer mutuellement.
La clé du cache des dépendances doit au moins contenir le résumé du fichier de verrouillage, la version de la chaîne d’outils et l’architecture. Même après un succès du cache, vérifiez l’intégrité des dépendances : un ancien cache ne garantit pas un résultat correct.
Exécutez une phase de nettoyage, que la tâche réussisse ou échoue. Conservez les logs et artefacts à rapatrier, puis supprimez les clés temporaires, répertoires de travail et états de simulateur inutilisés.
Intégrez le runner avec des informations d’enregistrement temporaires contrôlées par l’équipe ; les étiquettes doivent indiquer clairement Apple Silicon, la région et le workflow prévu.
Exécutez uniquement la vérification de l’environnement et un build minimal, puis confirmez que les droits du dépôt, le chemin Xcode, le téléchargement des dépendances et le retour des artefacts fonctionnent.
Mesurez d’abord la durée sans cache, puis créez la clé à partir du fichier de verrouillage et de la chaîne d’outils afin de pouvoir vérifier son efficacité réelle.
Provoquez volontairement un échec et vérifiez que les logs sont toujours rapatriés, que les informations temporaires sont révoquées et que les tâches suivantes n’héritent pas de l’état précédent.
La configuration de base est Debug M4 : M4, 16GB de RAM, SSD 256GB. Les SSD +1TB, +2TB et la mise en parallèle Thunderbolt 5 sont des options distinctes ; leur présence ne peut pas être déduite de l’affichage système.
Avant l’activation, confirmez le workflow cible, le pic prévu et la méthode de migration des données ; après livraison, vérifiez la capacité totale, le nom du volume, le système de fichiers et le chemin de montage.
Convient aux tâches nécessitant de conserver davantage d’archives, de médias ou de fichiers de modèles. Validez la capacité à partir des informations disque du système et du montage réel.
Avant l’envoi, précisez le nombre d’unités en parallèle, la répartition des tâches et l’emplacement de regroupement des artefacts. Cette option est facturée par machine ; le prix d’une machine ne permet pas de déduire celui du groupe.
Confirmez le nom et le nombre d’options, la durée de location et le montant en USD. L’état réellement disponible et la passerelle de paiement sont ceux renvoyés en temps réel par le panneau.
Utilisez diskutil list et df -h pour consigner les disques, volumes et espaces disponibles, au lieu de vous fier uniquement aux icônes du bureau.
Effectuez un petit test de lecture-écriture dans le répertoire de travail cible afin de confirmer les droits, le chemin et l’emplacement réel des artefacts ; un test extrême unique ne représente pas les performances à long terme.
Lors d’une collaboration entre plusieurs disques ou machines, consignez la relation « tâche — volume — répertoire d’artefacts » afin d’éviter qu’un nettoyage supprime des données à conserver.
Une seule mesure de latence ou une seule déconnexion ne suffit pas à localiser le problème. Répétez les mesures sur le même réseau et à des heures proches, en conservant la commande, la cible, l’heure et la sortie brute.
| Test | Commande d’exemple | Points à observer | Distinction possible |
|---|---|---|---|
| Latence de base | ping -c 20 <HOST> |
Perte de paquets, variations, emplacement des dépassements de délai consécutifs | Anomalie d’accès local et anomalie persistante de la liaison |
| Suivi de route | traceroute <HOST> |
Changements de route, sauts anormaux, persistance des dépassements de délai | Sortie locale, route interrégionale et liaison proche de la cible |
| Contrôle du port | nc -vz <HOST> 22 |
Connexion réussie, refusée ou expirée | Hôte joignable mais port SSH inaccessible |
| Test de transfert | scp <FILE> <USER>@<HOST>:<PATH> |
Débit constant, nouvelles tentatives, somme de contrôle du fichier | Problèmes de latence interactive et de transfert de gros fichiers |
| Contrôle de session | ssh -vv <USER>@<HOST> |
Résolution, négociation, sélection de clé, phase d’authentification | Problèmes de réseau, d’empreinte, de clé et de configuration utilisateur |
Plusieurs cibles sont anormales depuis le même appareil, la situation revient à la normale sur un réseau contrôlé ou des pertes persistantes apparaissent dans les premiers sauts de la sortie locale. Indiquez le type de réseau et le résultat d’une nouvelle mesure.
L’accès local est normal, mais une route précise présente des variations persistantes. Fournissez plusieurs suivis de route ; un saut intermédiaire silencieux ne signifie pas nécessairement une perte réelle de paquets.
L’hôte et le port sont accessibles, mais l’authentification, le shell ou la session graphique échoue. Conservez alors la sortie SSH détaillée, l’erreur de session et les opérations récentes.
Les résultats réseau dépendent de l’opérateur local, du mode d’accès, de la route interrégionale et de l’heure de mesure. Ils servent uniquement à délimiter le problème et ne constituent pas un engagement de performance. Tous les nœuds fonctionnent normalement 365 jours par an ; vérifiez la disponibilité dans les relevés de service réels.
Pour un problème sur un nœud en service, envoyez en priorité un ticket depuis le panneau. Avant-vente ou accès impossible : écrivez à support@debugmac.com. Les deux canaux utilisent la même liste d’informations.
Fournissez l’identifiant affiché dans le panneau et le modèle Debug M4 ; n’envoyez ni justificatif de paiement, ni clé privée, ni mot de passe d’accès complet.
Indiquez Singapour, Japon (Tokyo), Corée du Sud (Séoul), Hong Kong ou Ouest des États-Unis, et précisez si le problème apparaît uniquement dans cette région.
Indiquez l’heure de la première occurrence avec son fuseau, l’heure de la dernière reproduction et la durée ; évitez « à l’instant » ou « parfois ».
Présentez les entrées, la commande exécutée, le résultat attendu et le résultat réel. Si la reproduction n’est pas stable, indiquez sa fréquence et les conditions communes observées.
Conservez les horodatages, codes de sortie et contexte de l’erreur ; retirez les clés, jetons, mots de passe, adresses de dépôts internes et autres valeurs sensibles.
Listez les commandes exécutées, le nombre de tentatives, les changements de réseau et les résultats afin d’éviter que l’assistance répète les mêmes contrôles de base.
Le ticket peut être associé à la commande, au nœud et à l’historique de traitement ; il convient aux problèmes de connexion, de build, de stockage, de facturation et d’accès au compte.
Indiquez dans l’objet le type de tâche et la région du nœud ; structurez le corps selon la checklist de cette page. L’unique adresse d’assistance externe est support@debugmac.com.
Choisissez Debug M4, la durée de location et l’un des cinq sites, puis revérifiez avant l’envoi la configuration de base, les options, la région et le montant dû en USD. L’état réellement disponible est celui renvoyé en temps réel par le panneau.