Identifiez la prochaine étape

Commencez par ici, puis contactez-nous

Livraison : vérifiez la commande. Connexion : vérifiez le port. Build : commencez par consulter les journaux. Recherchez un mot-clé pour trouver des vérifications à effectuer.

Saisissez un mot-clé pour afficher les résultats. Après la recherche, appuyez sur Entrée pour accéder à la première réponse.

Pour un problème sur une machine déjà livrée, ajoutez les informations au ticket existant afin de faciliter le suivi.

À quelle étape le problème survient-il ?

Les problèmes se répartissent en quatre catégories. Vérifiez d’abord que la machine est accessible, puis contrôlez les outils et la signature afin de ne pas confondre un problème réseau avec un échec de build.

01 / Livraison

Démarrage et livraison

Suivez l’avancement après le paiement, récupérez vos identifiants et vérifiez l’état de la commande et les informations de connexion.

Vérifier la livraison
02 / Connexion

Accès à distance

Dépannez séparément les délais d’attente SSH, les clés publiques refusées et les échecs de connexion au bureau distant.

Dépanner la connexion
03 / Build

Xcode et signature

Des journaux d’archive aux profils de provisioning, distinguez les étapes de compilation, d’archivage et d’exportation.

Dépanner build et signature
04 / Facture

Facturation et renouvellement

Vérifiez les tarifs par jour, semaine, mois et trimestre, ainsi que les options de renouvellement et l’état du paiement.

Vérifier la facturation
Finalisez la livraison de la machine

Le statut de la commande fait foi

Le paiement, le traitement de la commande et la livraison de la machine sont des étapes distinctes. Après le paiement, vérifiez d’abord la commande : la page de paiement ne suffit pas à confirmer que la machine est accessible.

  1. 01

    Vérifiez le paiement

    Dans le portail, vérifiez le numéro de commande, le modèle, la durée de location et l’état du paiement. Un virement on-chain ou un paiement par carte soumis ne signifie pas que le statut de la commande a déjà été mis à jour.

  2. 02

    Consultez l’état de livraison

    Ouvrez la commande ou les détails de l’instance correspondante pour consulter l’avancement. Le délai de livraison et la disponibilité effective sont ceux indiqués en temps réel dans le portail.

  3. 03

    Récupérez les informations de connexion

    Après la livraison, consultez dans les détails de l’instance l’adresse de l’hôte, le nom d’utilisateur, le port SSH et les informations de première connexion. Utilisez les champs affichés pour cette instance, sans reprendre ceux d’une autre commande.

J’ai payé. Pourquoi mes informations de connexion ne s’affichent-elles pas encore ?

Vérifiez d’abord que vous consultez la commande liée à ce paiement, puis contrôlez son statut dans le portail. Si le paiement est confirmé mais que l’instance est toujours en cours de traitement, indiquez dans le ticket le numéro de commande, le mode de paiement, la référence du justificatif et le statut actuel. L’assistance pourra ainsi vérifier l’étape de livraison concernée.

Pour un paiement USDT-TRC20, conservez le hash de transaction. Pour un paiement par carte, gardez la référence de paiement. N’envoyez ni numéro de carte complet, ni cryptogramme, ni mot de passe du portail. Ne créez pas de nouvelle commande pour un paiement déjà effectué.

Délai d’attente SSH ou clé publique refusée : que vérifier ?

Délai d’attente de connexion : vérifiez d’abord que l’instance a été livrée et qu’elle est accessible, puis contrôlez l’adresse de l’hôte et le port caractère par caractère. Vérifiez également votre réseau local, votre proxy et les règles d’accès. Le délai d’attente survient avant l’authentification ; changer plusieurs fois de clé publique ne résout généralement pas un problème de réseau.

Permission denied (publickey) : vérifiez le nom d’utilisateur, la clé privée utilisée et la clé publique enregistrée dans le portail. Le fichier à fournir contient la clé publique ; gardez la clé privée sur votre machine et ne l’envoyez pas à l’assistance. Remplacez HOST, PORT et USER ci-dessous par les valeurs indiquées dans les détails de l’instance.

ssh -vv -o IdentitiesOnly=yes \
  -i ~/.ssh/id_ed25519 \
  -p PORT USER@HOST

Avant de transmettre la sortie de diagnostic, masquez l’adresse de l’hôte, les chemins personnels et les autres informations sensibles. Conservez le type d’erreur et l’étape d’authentification. Si l’empreinte de l’hôte a changé, vérifiez d’abord si le système vient d’être réinstallé ; ne désactivez pas directement la vérification de l’empreinte.

SSH fonctionne, mais pas le bureau distant. Que faire ensuite ?

Vérifiez les informations de connexion au bureau indiquées dans les détails de l’instance et assurez-vous qu’il s’agit de la bonne machine. Le bureau distant et SSH empruntent des chemins de connexion distincts : une connexion SSH réussie confirme uniquement que le chemin SSH est accessible.

Suivez les instructions de connexion pour vérifier le service de bureau, le port d’accès et la destination du tunnel. En cas d’écran noir, notez le message du client et les étapes suivies, puis essayez de réduire la résolution ou la qualité d’image pour distinguer un problème d’affichage d’un échec d’authentification. Avant tout redémarrage, arrêtez les tâches d’archivage ou de test en cours.

Consultez le guide SSH et accès à distance pour les paramètres de connexion et l’ordre des étapes. L’accès au bureau se trouve dans les détails de l’instance après connexion.

Repérez la première vraie erreur

Un échec d’archive ne justifie pas de tout effacer

Conservez d’abord les éléments utiles au diagnostic, puis vérifiez Xcode, le Scheme, les dépendances et la plateforme cible. Le récapitulatif d’échec à la fin du journal n’est que le résultat : commencez par la première erreur de compilation ou de signature.

Une erreur survient pendant archive. Dans quel ordre chercher ?

Notez le commit actuel, la commande de build et la version de Xcode. Vérifiez que le Scheme existe et qu’il est configuré pour l’archivage. Pour les tâches en ligne de commande, contrôlez également le répertoire des outils de développement sélectionné afin d’éviter d’ouvrir une version dans l’interface et d’en utiliser une autre en CI.

xcode-select -p
xcodebuild -version
xcodebuild -list -workspace App.xcworkspace

Remplacez App.xcworkspace et App par les noms réels du projet. Si le projet utilise un workspace, ne passez pas un project par erreur. Des dépendances non restaurées, un Scheme partagé non validé dans le dépôt ou une cible de déploiement incompatible avec le SDK peuvent provoquer un échec avant même l’archivage.

set -o pipefail
xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -destination 'generic/platform=iOS' \
  -archivePath "$PWD/output/App.xcarchive" \
  archive 2>&1 | tee archive.log

Cette commande génère un fichier .xcarchive, pas un IPA distribuable. Si l’archive réussit mais que l’export échoue, vérifiez la signature et le profil de provisioning au lieu de reprendre le traitement de toutes les dépendances de compilation.

Quand faut-il intervenir sur DerivedData ?

Vérifiez si le cache est en cause après un changement de toolchain entraînant une incompatibilité de modules ou des fichiers générés incohérents, ou si le même commit passe dans un environnement vierge mais échoue avec l’ancien cache. Arrêtez d’abord les builds du projet et enregistrez les journaux. Ne prenez pas tout le répertoire utilisateur comme cible de nettoyage.

Pour un test plus sûr, indiquez un nouveau répertoire dédié au projet pour ce build. Conservez l’ancien pour pouvoir le consulter. Si le nouvel emplacement échoue aussi, recherchez plutôt la cause dans le code source, les dépendances ou la configuration que de vider le cache à répétition.

xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -derivedDataPath "$PWD/.build/DerivedData-check" \
  -destination 'generic/platform=iOS' \
  build

Une fois le build rétabli, vérifiez au niveau du projet quels anciens répertoires peuvent être supprimés. Séparez le code source, les fichiers de signature, les archives et DerivedData pour limiter les risques de suppression accidentelle.

Runtime du simulateur ou destination de test introuvable : que faire ?

Déterminez d’abord si la tâche concerne l’archivage pour un appareil ou des tests sur simulateur. Une archive destinée à un appareil utilise une destination iOS ; les tests sur simulateur nécessitent un runtime et un appareil pris en charge par la version actuelle de Xcode. N’utilisez pas une destination de simulateur pour une archive de distribution.

xcrun simctl list runtimes
xcrun simctl list devices available
xcodebuild -showdestinations \
  -workspace App.xcworkspace -scheme App

Si le runtime manque, installez le composant de plateforme correspondant dans les réglages de Xcode. Les versions de Xcode compatibles avec cette commande permettent également de télécharger les composants de plateforme iOS ci-dessous. Vérifiez d’abord l’espace disque disponible et assurez-vous que la version de Xcode sélectionnée en ligne de commande est bien celle que vous comptez utiliser.

xcodebuild -downloadPlatform iOS

Après l’installation, affichez de nouveau les destinations et indiquez à la CI une destination réellement disponible. Ne réutilisez pas indéfiniment l’identifiant d’un simulateur provenant d’une autre machine.

Gérez séparément les éléments de signature

Certificat, profil de provisioning et clé API : chacun son rôle

Le fichier .p12 contient le certificat et la clé privée, le profil de provisioning définit les applications et capacités autorisées, et la clé API sert à autoriser certaines interfaces. Ces éléments ne sont pas interchangeables.

Après l’importation du .p12, pourquoi la CI ne trouve-t-elle toujours pas l’identité de signature ?

Transférez le .p12 vers la machine par un canal sécurisé, importez-le dans un trousseau utilisé pour le build et vérifiez que le fichier contient la clé privée associée. Un certificat sans clé privée ne permet pas de signer le code. Fournissez le mot de passe d’importation via une variable secrète de la CI ; ne l’inscrivez ni dans le dépôt, ni dans un script de commande, ni dans un ticket.

security find-identity -v -p codesigning

Effectuez cette vérification dans l’environnement utilisateur qui exécute réellement le runner. Le fait que le certificat soit visible pour l’utilisateur du bureau ne signifie pas qu’il le soit aussi pour un autre compte de service. Vérifiez également que le trousseau est déverrouillé, qu’il figure dans la liste de recherche de cet utilisateur et que le processus de signature dispose des autorisations nécessaires.

Utilisez un trousseau dédié aux builds et verrouillez-le conformément à votre procédure une fois la tâche terminée. Si vous demandez de l’aide, fournissez uniquement le résultat expurgé de la vérification d’identité et le texte de l’erreur ; n’envoyez ni .p12, ni clé privée, ni mot de passe d’importation.

L’archive réussit, mais l’export de l’IPA signale un profil incompatible. Que vérifier ?

Vérifiez la cohérence de ces quatre éléments : Bundle ID, Team ID, usage prévu pour l’export et entitlements. Pour une app avec des extensions, chaque Target à signer doit avoir sa propre configuration correspondante. La configuration de l’app principale ne garantit pas celle des extensions.

Vérifiez ensuite que le profil est valide, qu’il inclut le certificat utilisé et que la méthode de signature sélectionnée pour l’export correspond au projet. Les réglages pour les tests de développement diffèrent de ceux d’une distribution ; ne choisissez pas un profil en vous fiant uniquement à son nom.

Conservez les journaux de l’étape d’exportation et une copie expurgée de ExportOptions.plist. Dans votre ticket, précisez si l’échec survient pendant archive ou exportArchive pour réduire immédiatement le périmètre du diagnostic.

Comment stocker une clé API App Store Connect ?

Enregistrez le fichier .p8 dans un répertoire à accès restreint et fournissez le Key ID, l’Issuer ID et le chemin du fichier via des variables secrètes de la CI. Accordez uniquement les autorisations nécessaires aux tâches d’envoi ou d’automatisation ; ne copiez pas directement le contenu de la clé dans un lane et ne le validez pas dans le dépôt.

Une clé API peut servir aux procédures d’envoi et de gestion qui prennent en charge cette méthode d’authentification, mais elle ne remplace pas la clé privée du certificat requise pour signer localement le code. En cas d’échec d’envoi vers TestFlight, distinguez une erreur de signature de l’artefact local d’un problème d’authentification à l’API, d’autorisation sur l’app ou de version.

Après une rotation de clé, mettez à jour la configuration du runner et supprimez les anciennes références. Pour obtenir de l’aide, indiquez le code d’erreur expurgé et l’étape concernée ; n’envoyez pas le fichier .p8.

Que vérifier avant de configurer Fastlane match sur une nouvelle machine ?

Vérifiez les droits de lecture du dépôt de signature, la phrase secrète de déchiffrement, le type de distribution, l’identifiant de l’app et la configuration de l’équipe. En CI, privilégiez le téléchargement en lecture seule des éléments de signature déjà préparés afin d’éviter toute tentative de création ou de modification de certificats à chaque exécution.

lane :prepare_signing do
  match(
    type: "appstore",
    readonly: true,
    app_identifier: ENV.fetch("APP_IDENTIFIER"),
    team_id: ENV.fetch("TEAM_ID")
  )
end

Gérez séparément les identifiants d’accès au dépôt et la phrase secrète de déchiffrement. En cas d’échec de lecture, vérifiez l’authentification au dépôt ; en cas d’échec de déchiffrement, vérifiez la phrase secrète. Si l’installation réussit mais que la signature échoue, contrôlez le trousseau et le profil de provisioning. Ne regroupez pas ces trois problèmes sous la seule mention « match ne fonctionne pas ».

Vérifiez séparément la durée et le paiement

Quatre durées, tarifs affichés au catalogue

Les tarifs par jour, semaine, mois et trimestre sont définis séparément ; le prix journalier ne sert pas à calculer directement les autres durées. Les deux modèles sont des Mac physiques dédiés, et non des machines virtuelles. Le montant exact figure dans le récapitulatif de commande.

Tarifs catalogue des modèles de base, en dollars américains (USD)
Modèle et configurationJourSemaineMoisTrimestre
OSXBuild Bake M4
M4 / 16GB / 256GB
$20.1$54.2$100.3$272.8
OSXBuild Bake M4 Pro
M4 Pro / 64GB / 2TB
$60.3$162.9$301.6$820.4
Comment comparer les quatre durées et calculer les options ?

Choisissez la durée en fonction du temps d’utilisation continu prévu, puis vérifiez le tarif du modèle et des options pour cette même durée. Les dates et heures exactes de début et de fin figurent sur la commande. Une location d’un mois ne correspond pas simplement au nombre de jours restants dans un mois civil.

Les SSD supplémentaires et Thunderbolt 5 disposent chacun de tarifs catalogue pour les quatre durées. Sélectionnez les options souhaitées dans le configurateur, puis consultez le récapitulatif avant le paiement. Ne déduisez pas le montant final du seul prix du modèle de base. Retrouvez le catalogue complet et les conseils de sélection dans les offres de location et options.

Où renouveler ma location et que faire avant son échéance ?

Connectez-vous au portail, ouvrez l’abonnement ou la commande concernée et vérifiez la date d’expiration, les options de renouvellement disponibles et la facture. Après le paiement, confirmez que la nouvelle date d’expiration est bien enregistrée. L’ouverture de la page de paiement ou la soumission du paiement ne signifie pas que le renouvellement a été pris en compte.

Le renouvellement automatique et les éventuelles factures impayées dépendent des paramètres et du statut affichés pour cette commande. Si vous souhaitez continuer à utiliser la machine, renouvelez-la suffisamment tôt et vérifiez le résultat. Si vous mettez fin à la location, exportez à l’avance le code source, les artefacts et les paramètres nécessaires.

À la fin de la période de location, la machine entre dans le processus de récupération, puis le disque est effacé de façon sécurisée et le système réinstallé. Ne faites pas du nœud votre seule sauvegarde et ne comptez pas récupérer vos fichiers locaux après l’échéance.

Quels moyens de paiement sont acceptés et comment dépanner un paiement ?

Seuls USDT-TRC20 et Visa / Mastercard / Amex (via Stripe) sont acceptés. Tous les paiements sont facturés en dollars américains (USD). Les moyens de paiement effectivement disponibles sont ceux indiqués par la réponse de l’interface côté serveur.

Pour un paiement USDT-TRC20, vérifiez le réseau, l’adresse de réception et le montant affichés au paiement ; ne réutilisez pas les informations d’une ancienne commande. Pour un paiement par carte, suivez les étapes de vérification de la passerelle, puis retournez dans le portail pour confirmer le statut.

En cas de problème de paiement, indiquez le numéro de commande, le moyen choisi, le message expurgé et la référence de transaction. Le traitement des cartes est assuré par Stripe ; ni le ticket ni l’e-mail ne nécessitent votre numéro de carte complet ou votre cryptogramme.

Joignez les éléments utiles au diagnostic

Avant d’envoyer un ticket, vérifiez ces quatre points

Des étapes permettant de reproduire le problème sont plus utiles qu’un simple « échec du build ». Si une tâche est en cours, sauvegardez d’abord les éléments utiles avant de redémarrer ou de modifier la configuration.

  • Redémarrage tenté après sauvegarde des éléments

    Arrêtez d’abord le build et les tests, puis enregistrez les journaux et les fichiers non validés avant de redémarrer la machine. Notez ce qui se passe avant et après le redémarrage. Si la tâche ne peut pas être interrompue, indiquez dans le ticket que vous n’avez pas redémarré et pourquoi.

  • Port SSH et clé publique vérifiés

    Comparez l’hôte, le nom d’utilisateur, le port et la paire de clés avec les informations de l’instance actuelle. Indiquez le texte exact de l’erreur ; ne téléversez pas la clé privée et n’envoyez pas le mot de passe de première connexion.

  • 50 dernières lignes du journal jointes

    Joignez les 50 dernières lignes et le contexte de la première erreur pertinente. Indiquez la commande, la version de Xcode et l’identifiant du commit. Si le journal est long, joignez-le au ticket via le portail après avoir supprimé les jetons et secrets de signature.

  • Nœud et numéro de commande indiqués

    Précisez le numéro de commande, le nœud, la date et le fuseau horaire du problème, ainsi que le résultat attendu et le résultat obtenu. Indiquez également quand la machine a fonctionné normalement pour la dernière fois, afin d’éviter les demandes répétées d’informations de base.

Cette commande affiche les dernières lignes sans modifier les artefacts du build :

tail -n 50 archive.log

Ne joignez jamais de clé privée de certificat, de mot de passe .p12, de fichier .p8, de jeton d’accès ni de mot de passe du portail à vos éléments de support.

Le problème persiste ? Transmettez-nous vos vérifications

Pour une commande existante ou un problème sur une machine, connectez-vous au portail et ouvrez un ticket. Pour une demande avant-vente, un problème de connexion ou pour nous communiquer des coordonnées, écrivez à support@osxbuild.com.

Les demandes sont prises en charge selon les fuseaux horaires de l’Asie-Pacifique et de l’ouest des États-Unis. Le suivi des réponses se fait par ticket ou par e-mail. Indiquez votre fuseau horaire et les plages durant lesquelles vous pouvez participer au diagnostic, puis ajoutez les nouveaux résultats au ticket existant.

La page de contact précise les informations à préparer selon le type de demande. Les machines fonctionnent toute l’année, 365 jours sur 365 ; les horaires de réponse aux tickets sont indépendants de la disponibilité des nœuds.