Repérez le problème, puis diagnostiquez-le

Relancez vos builds

Dépannez la connexion, les outils, la signature ou la facturation. Vérifiez d’abord les commandes et leurs limites ci-dessous. Si le problème persiste, transmettez à l’assistance les informations du nœud et des journaux expurgés.

Pour toute question sur un nœud loué, utilisez le compte associé à la commande afin que nous puissions vérifier l’instance et la facture.

Choisissez l’étape concernée

Commencez par l’étape où l’échec survient. Inutile de modifier tout le pipeline : vérifiez d’abord si une tâche minimale reproductible aboutit.

Compte et facturation

Vérifiez l’adresse e-mail associée à la commande, la période de location et l’état de la facture. Avant de renouveler, confirmez l’instance et la durée, puis fiez-vous au résultat affiché dans la console après le paiement.

Connexion et bureau à distance

Déterminez d’abord s’il s’agit d’un problème d’accès SSH, d’authentification ou de connexion à l’interface graphique. Notez le message d’erreur exact et ne collez pas votre mot de passe dans un ticket.

Xcode et signature

Vérifiez d’abord le répertoire développeur actif, puis le certificat et sa clé privée, le profil de provisioning et les réglages de la cible. Testez séparément les outils et la signature.

Intégration CI/CD

Vérifiez l’utilisateur d’exécution, les tags et le répertoire de travail du runner. Une fois la tâche manuelle réussie, configurez les déclenchements automatiques et l’injection des identifiants.

Données et réinstallation

Distinguez le code source, les caches et les clés. Avant une réinstallation, sauvegardez les données nécessaires hors du nœud et vérifiez que la sauvegarde peut être restaurée.

Vérifiez avec une commande

Questions fréquentes sur les Mac de build

Les chemins, schémas et noms de projet ci-dessous sont des exemples de commandes : remplacez-les par ceux de votre projet avant de les exécuter. Pour les opérations liées aux autorisations ou aux certificats, testez d’abord sur une seule tâche.

Comment basculer entre plusieurs versions de Xcode avec xcode-select ?

Vérifiez d’abord le répertoire développeur actif et la version, puis confirmez que la version de Xcode voulue est installée. L’exemple ci-dessous définit le répertoire système par défaut sur /Applications/Xcode.app ; pour une autre version, indiquez le chemin réel de l’application.

xcode-select -p
xcodebuild -version
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
xcodebuild -version
xcrun --find swift

Un changement à l’échelle du système affecte les tâches lancées ensuite. Si vos pipelines utilisent différentes versions, définissez plutôt DEVELOPER_DIRdans l’environnement de chaque tâche, au lieu de laisser deux jobs modifier sans cesse le répertoire global.

DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild -list -workspace MyApp.xcworkspace

Après le changement, listez les schémas et lancez un Archive. Si des composants de plateforme manquent ou si la configuration initiale n’a pas été effectuée, initialisez la chaîne d’outils correspondante dans l’interface graphique de macOS avant de relancer l’automatisation.

Comment importer un certificat de distribution et un profil de provisioning ?

Préparez un fichier d’export du certificat contenant la clé privée, le mot de passe de ce fichier et un profil de provisioning correspondant à l’identifiant de l’app et au mode de distribution. Un certificat sans la clé privée associée ne permet généralement pas de signer le code.

  1. Sur le compte macOS qui exécute les builds, ouvrez « Accès aux trousseaux » et importez le certificat dans son trousseau.
  2. Développez le certificat et vérifiez que la clé privée correspondante apparaît dessous. Utilisez la commande ci-dessous pour lister les identités de signature valides.
  3. Installez le profil de provisioning conformément aux exigences de la version de Xcode utilisée. Dans les réglages de signature du projet, vérifiez l’équipe, le Bundle Identifier et le mode de distribution.
  4. Vérifiez séparément les réglages de signature de l’app, des widgets et des extensions, puis lancez un Archive et validez l’export.
security find-identity -v -p codesigning

L’environnement du trousseau de l’utilisateur qui exécute la CI peut différer de celui de l’utilisateur du bureau à distance. Pour les builds sans intervention, déverrouillez correctement le trousseau dans le job et configurez les autorisations nécessaires. Récupérez le mot de passe depuis une variable protégée de la CI ; ne l’inscrivez ni dans le dépôt, ni dans la sortie des commandes, ni dans un ticket.

Si le build manuel réussit mais que la CI échoue, comparez d’abord l’utilisateur d’exécution et l’état du trousseau. Pour signaler une erreur de signature, indiquez uniquement le type de certificat, sa date d’expiration et les lignes d’erreur expurgées. Ne transmettez ni clé privée ni mot de passe de certificat.

Les données du nœud sont-elles conservées après une réinstallation du système ?

Ne considérez pas une réinstallation comme une opération qui préserve vos fichiers. Elle peut effacer le système et le répertoire de travail. Avant d’en faire la demande, confirmez son périmètre via un ticket dans la console et sauvegardez vos données hors du nœud. À la fin de la location, le disque est effacé : le nœud ne peut alors plus servir à restaurer vos données.

La sauvegarde doit au minimum inclure le code source non poussé, la configuration du build, les artefacts nécessaires, les profils de provisioning et les éléments secrets protégés. DerivedData et les répertoires de téléchargement des dépendances sont régénérables, mais leur absence peut allonger le premier build après restauration.

Une sauvegarde n’est pas forcément restaurable. Extrayez-la dans un répertoire distinct, vérifiez le nombre de fichiers et les configurations essentielles, puis confirmez que vous pouvez récupérer le dernier artefact avant d’arrêter les tâches sur l’ancien nœud. Après la réinstallation, réinstallez la chaîne d’outils, restaurez l’environnement de signature et enregistrez le runner.

Comment renouveler avant la fin de la période de location ?

Connectez-vous au compte associé à la commande. Dans la console, vérifiez l’instance, la date d’expiration et les durées de renouvellement disponibles, puis réglez la facture affichée. Seuls le résultat confirmé par la console et la nouvelle période de location font foi, pas une capture d’écran du paiement ni la page affichée avant la fermeture du navigateur.

Les seuls moyens de paiement acceptés sont USDT-TRC20 et Visa / Mastercard / Amex (via Stripe). Tous les paiements sont en dollars ; la disponibilité effective des passerelles dépend de la réponse de l’interface serveur. Avant un paiement on-chain, vérifiez le réseau, le montant et les coordonnées du destinataire. Après un paiement par carte, retournez dans la console pour vérifier la facture.

Si l’état de la facture ne correspond pas à celui de l’instance, indiquez le numéro de commande, le numéro de facture et la référence de transaction. Ne payez pas une seconde fois pour tenter de corriger l’état et ne transmettez pas votre numéro de carte complet dans un ticket. Avant l’expiration, sauvegardez vos artefacts et fichiers nécessaires : le renouvellement ne remplace pas une sauvegarde.

Impossible de se connecter en SSH ou au bureau à distance : que vérifier d’abord ?

Vérifiez d’abord dans la console l’adresse du nœud, le port, le nom d’utilisateur et l’état de l’instance. Distinguez un délai d’attente d’un échec d’authentification : dans le premier cas, vérifiez d’abord l’accès réseau ; dans le second, le nom d’utilisateur, le mot de passe ou la clé. SSH et VNC ont des paramètres de connexion distincts : ne confondez pas leurs ports.

ssh -v -p PORT USER@HOST

Remplacez PORT ,USER etHOST par les informations réelles. Si les journaux signalent un changement d’empreinte de l’hôte, vérifiez-en d’abord la cause à partir des informations fiables de la console ou d’un ticket ; ne désactivez pas la vérification de l’identité de l’hôte.

Le bureau à distance permet de vérifier l’interface graphique de macOS, le trousseau et les réglages de Xcode ; SSH convient à la ligne de commande et à la CI. Avant de transmettre des journaux, supprimez les informations sensibles des noms d’utilisateur, des adresses et des chemins locaux. Ne gardez que le type d’erreur et l’ordre dans lequel elle s’est produite.

Pourquoi les jobs restent-ils en attente après l’enregistrement d’un runner self-hosted ?

Vérifiez ces quatre points : le runner est-il en ligne, ses tags correspondent-ils à ceux du job, le projet est-il autorisé à l’utiliser et le processus s’exécute-t-il avec le bon utilisateur ? Un enregistrement réussi établit une association, mais ne garantit pas que tous les jobs seront affectés automatiquement à ce nœud.

Lancez d’abord un job de test qui affiche uniquement les informations de la chaîne d’outils. Vérifiez l’utilisateur d’exécution, le répertoire et la version de Xcode, puis ajoutez l’installation des dépendances et la signature.

whoami
pwd
xcode-select -p
xcodebuild -version
security find-identity -v -p codesigning

Indiquez macOS, l’architecture de la puce et l’usage dans les tags, puis sélectionnez-les explicitement dans la configuration du projet. Pour la première intégration, limitez l’exécution à un seul job. Vérifiez que les caches, le trousseau et le répertoire des artefacts ne se chevauchent pas, puis augmentez progressivement le parallélisme. Le jeton d’enregistrement est un identifiant secret : ne le mettez ni dans un ticket ni dans les journaux de build.

Le projet compile, mais Archive échoue : comment isoler le problème ?

Vérifiez d’abord que vous utilisez le bon workspace, un schéma partagé et la configuration Release. Archive et build pour simulateur ne suivent pas le même parcours ; vérifiez séparément la signature, l’architecture et les réglages d’export pour la cible appareil.

xcodebuild -list -workspace MyApp.xcworkspace
xcodebuild archive \
  -workspace MyApp.xcworkspace \
  -scheme MyApp \
  -configuration Release \
  -destination 'generic/platform=iOS' \
  -archivePath build/MyApp.xcarchive

Conservez la première erreur significative et son contexte : ne vous contentez pas de la conclusion « échec » à la fin du journal. Vérifiez séparément l’installation des dépendances, les phases de script, la signature et l’écriture sur le disque. Même si Archive réussit, validez les artefacts exportés : la création de l’archive ne signifie pas que le package distribuable est prêt.

Puis-je supprimer tous les caches si l’espace disque manque ?

Vérifiez d’abord l’espace utilisé et l’état des tâches, puis distinguez les caches régénérables des artefacts à conserver. Ne supprimez pas un répertoire dont dépend une tâche en cours et ne traitez pas le code source, les éléments de signature ou une archive pas encore téléversée comme des caches.

df -h
du -sh ~/Library/Developer/Xcode/DerivedData
du -sh ~/Library/Developer/Xcode/Archives

Définissez des règles de conservation distinctes pour les caches et les artefacts. Après leur suppression, la première compilation et la résolution des dépendances peuvent prendre plus de temps : considérez ce build comme un test à froid. Si l’espace manque durablement, mesurez la croissance du projet et des artefacts, puis choisissez un modèle plus adapté ou une option SSD supplémentaire.

Utilisez les bons termes dans votre ticket

Huit termes courants liés aux ressources, à la connexion, au build et à la signature. Décrivez précisément les éléments concernés pour limiter les échanges de clarification.

Nœud physique
Un Mac mini qui exécute macOS. XCRent fournit une machine physique dédiée, et non une machine virtuelle. Les informations du nœud servent à identifier l’instance ; elles ne correspondent pas à l’identifiant d’un job CI dans votre projet.
Dédié
Pendant la période de location, un seul locataire utilise l’ensemble du nœud physique. Ses différents jobs restent en concurrence pour le CPU, la mémoire et le disque : à lui de gérer le parallélisme et l’isolation des répertoires.
VNC
Protocole de bureau à distance permettant d’utiliser l’interface graphique de macOS. Il est adapté à la vérification des réglages Xcode, du trousseau et de l’état du système. L’adresse et les identifiants sont disponibles dans la console après connexion.
SSH
Protocole de connexion chiffrée en ligne de commande, adapté à l’exécution de commandes, au transfert de fichiers et au déploiement de l’automatisation. Avec l’authentification par clé, protégez la clé privée et vérifiez l’identité du serveur. SSH n’est pas un protocole de bureau à distance.
runner self-hosted
Processus d’exécution CI déployé sur votre propre nœud. Il reçoit les jobs du projet et les exécute sous un utilisateur défini. L’état en ligne, les tags, les autorisations et le répertoire de travail déterminent ensemble si une tâche peut s’exécuter.
Archive
Artefact d’archivage Xcode contenant l’app et les informations nécessaires à son export ultérieur. La réussite d’Archive ne garantit pas celle de l’export : vérifiez ensuite la signature et la configuration de distribution.
Profil de provisioning
Fichier de signature qui définit l’identifiant de l’app, ses capacités, les certificats et le mode de distribution autorisé. Il doit correspondre à la configuration de la cible et ne remplace ni le certificat de distribution ni sa clé privée.
Mémoire unifiée
Mémoire partagée entre le CPU et le GPU sur Apple Silicon. Lorsque compilation, simulateur et traitements de modèles s’exécutent en même temps, évaluez ensemble la pression mémoire au lieu d’allouer toute la capacité à un seul job.
Disponibilité et compensation

Consultez le taux mensuel ; un échec de build n’est pas une interruption de service

Les nœuds fonctionnent normalement 365 jours par an. Évaluez séparément la disponibilité du service et le résultat de compilation du projet : un certificat expiré, une erreur de configuration du projet ou une action de l’utilisateur ne signifie pas en soi que le nœud est indisponible.

Engagement de disponibilité mensuelle

99.9%

Si la disponibilité mensuelle est inférieure à l’engagement, une compensation sous forme de prolongation de location est calculée au prorata de la durée non couverte. Pour en faire la demande, indiquez l’instance, la période concernée et les journaux de connexion. L’assistance vérifiera les journaux côté serveur et les conditions applicables.

Données des 90 derniers jours

Cette page n’est pas connectée aux données de surveillance des nœuds : elle n’affiche donc pas leur état jour par jour et ne présente pas l’engagement comme une mesure réelle. Pour consulter les événements réellement enregistrés, ouvrez un ticket dans la console.

Période consultée
90 derniers jours
État des données sur cette page
Données de surveillance non connectées
Période de calcul de la compensation
Vérification mensuelle

Quelles preuves conserver ?

Notez les heures de début et de fin de l’incident, en précisant le fuseau horaire. Conservez les erreurs de connexion, les résultats des nouvelles tentatives et l’instance touchée. Les exclusions, notamment les cas de force majeure et les actions de l’utilisateur, sont évaluées conformément aux conditions de service. Ne transmettez pas uniquement une capture d’écran d’un échec du pipeline et ne déduisez pas la durée d’indisponibilité du nœud d’une interruption de votre réseau local.

Ouvrez un ticket avec les informations nécessaires au diagnostic

Les clients ayant loué un nœud doivent ouvrir leur ticket dans la console. Pour les demandes commerciales ou les signalements de sécurité, écrivez à support@xcoderent.com. Ces deux canaux couvrent toutes les demandes d’assistance.

  1. 01

    Identifiez l’instance

    Indiquez le numéro de commande, la ville du nœud et le modèle. Les nœuds sont situés à Singapour, Tokyo, Séoul, Hong Kong, sur la côte est des États-Unis et sur la côte ouest des États-Unis. Précisez le modèle XR Build 16, XR Build 24 ou XR Build Pro 64 plutôt que d’écrire simplement « ce Mac de build ».

  2. 02

    Décrivez le problème

    Indiquez à quelle étape l’échec survient, quand il a commencé, s’il persiste et si vous avez récemment changé de version de Xcode, modifié la signature ou ajusté le runner. Précisez le fuseau horaire pour faciliter la comparaison des journaux entre les nœuds.

  3. 03

    Fournissez un exemple minimal reproductible

    Joignez les commandes expurgées, la première erreur significative et les vérifications déjà effectuées. N’envoyez ni clé privée, ni mot de passe de connexion, ni jeton d’enregistrement, ni numéro de carte complet. Supprimez également les chemins sensibles des journaux.

  4. 04

    Précisez l’étendue de l’impact

    Distinguez l’échec d’un seul projet, de tous les jobs ou de la connexion au nœud. Si certaines tâches fonctionnent encore, indiquez lesquelles réussissent et lesquelles échouent pour aider l’assistance à déterminer si le problème vient des outils, du projet ou de l’instance.

Où suivre l’avancement ?

Consultez dans la console l’avancement du ticket, les demandes d’informations complémentaires et les réponses de l’assistance. Nous ne garantissons pas de délai fixe de réponse à la minute près sans confirmation préalable. Si vous avez une échéance de livraison ou besoin d’une estimation de rétablissement, précisez-la dans le ticket afin que l’assistance puisse l’évaluer selon la situation. Rouvrir plusieurs demandes identiques n’apporte pas d’informations supplémentaires : ajoutez plutôt les éléments au ticket existant.

Vous n’avez pas trouvé la réponse ?

Parlez-nous de votre file de builds, de la durée d’utilisation prévue ou du message d’erreur rencontré. La page de contact explique comment préparer votre demande. Pour toute question concernant une commande existante, poursuivez le diagnostic dans la console afin d’en conserver l’historique complet.