1. Hébergement cloud
  2. Assistance
04 Support

Connexion SSH, builds Xcode et configuration de runners : documentation en libre-service

Consultez d'abord la documentation avant d'ouvrir un ticket. Les problèmes de connexion, de signature et de VNC — les trois cas les plus fréquents — se résolvent en général en 10 minutes grâce à cette page. Si rien n'y fait, la fin de page vous explique comment rédiger un ticket qu'un ingénieur comprendra du premier coup d'œil.

Quick Start

Prise en main en trois étapes

L'e-mail contenant vos identifiants arrive en moyenne 5 minutes après la commande. Suivez les trois étapes ci-dessous : votre première connexion prendra moins de 3 minutes.

01

Réception de l'e-mail avec vos identifiants

L'e-mail indique l'adresse du nœud (par ex. hk1.oncemini.com), le port SSH 22, le compte initial dev, le mot de passe initial et le mot de passe VNC. Rien reçu ? Vérifiez vos spams, puis la page de détail de l'instance dans le panneau de contrôle.

02

Première connexion SSH et changement de mot de passe

Exécutez ssh -p 22 dev@adresse-du-nœud, puis lancez immédiatement passwd pour remplacer le mot de passe initial. Ensuite, il est recommandé d'ajouter votre clé publique avec ssh-copy-id et de désactiver la connexion par mot de passe.

03

Connexion à l'interface graphique via VNC

Utilisez le partage d'écran natif de macOS ou n'importe quel client VNC pour vous connecter à adresse-du-nœud:5900, puis saisissez le mot de passe VNC pour accéder au bureau macOS complet. C'est ici que se font le premier appairage Xcode et la validation des fenêtres système.

Les droits root sont inclus dès la livraison : sudo est disponible en permanence, vous pouvez modifier librement la configuration système. Pas de panique en cas d'erreur : le panneau de contrôle permet de réinstaller macOS en libre-service, voir le guide ci-dessous.
Terminal

De la connexion à l'envoi : tout le flux en une session

Ci-dessous, un extrait réel de sortie sur un nœud de Hong Kong, Mini M (M4 / 24 Go) : connexion SSH, build Xcode, envoi vers App Store Connect avec fastlane. Les commandes à droite sont copiables directement.

dev@mini-hk1 — zsh — 96×28
ssh -p 22 dev@hk1.oncemini.com
Last login: Mon Jul 27 09:12:33 2026 from 203.0.113.24
sw_vers
ProductName:    macOS
ProductVersion: 15.5
BuildVersion:   24F74
xcodebuild -scheme App -configuration Release -destination 'generic/platform=iOS' build
▸ Compiling AppDelegate.swift
▸ Linking App
▸ Signing App.app
** BUILD SUCCEEDED ** [128.4s]
bundle exec fastlane release
[10:24:08] Login to App Store Connect (API key)
[10:26:41] Upload progress: 100%
Successfully uploaded package to App Store Connect
dev@mini-hk1 ~ % 

Commandes courantes · cliquer pour copier

ssh -p 22 dev@hk1.oncemini.com
passwd
ssh-copy-id -i ~/.ssh/id_ed25519.pub dev@hk1.oncemini.com
sudo xcode-select -s /Applications/Xcode_16.4.app
xcodebuild -scheme App -configuration Release build
security unlock-keychain login.keychain-db

Remplacez simplement hk1 par le préfixe de votre nœud ; retrouvez tous les domaines par nœud sur la page Localisation des nœuds. Vos scripts CI qui fonctionnent en local tournent ici tels quels.

Guides

Guides des tâches courantes

Les quatre tâches les plus souvent demandées, à suivre pas à pas. Chaque guide a été vérifié sur une machine réelle.

Plusieurs versions de Xcode et changement de version

  1. L'image livrée contient deux versions stables de Xcode préinstallées, nommées par numéro de version dans /Applications/Xcode_16.4.app et /Applications/Xcode_15.4.app.
  2. Vérifier la version active : xcodebuild -version.
  3. Changement global : sudo xcode-select -s /Applications/Xcode_15.4.app.
  4. En CI, évitez de modifier le réglage global ; utilisez plutôt une variable d'environnement ponctuelle : DEVELOPER_DIR=/Applications/Xcode_16.4.app xcodebuild ….
  5. Besoin d'une autre version (y compris une bêta) ? Ouvrez un ticket en précisant le numéro de version. Notre bibliothèque couvre toutes les versions stables depuis la 15.0, déployées sur la machine en général en 2 heures pendant les horaires ouvrés.

Configurer un runner self-hosted GitHub Actions

  1. Dans le dépôt : Settings → Actions → Runners → New self-hosted runner, choisir macOS comme système et ARM64 comme architecture.
  2. Télécharger et décompresser le package du runner selon les commandes indiquées sur la page, puis exécuter ./config.sh --url … --token … pour finaliser l'enregistrement.
  3. L'enregistrer comme service persistant : ./svc.sh install && ./svc.sh start. launchd le relance automatiquement après un redémarrage de la machine.
  4. Dans le workflow, écrire runs-on: [self-hosted, macOS, ARM64] ; avec plusieurs machines, ajoutez un label personnalisé pour les distinguer.
  5. Repère de concurrence : un Mini M (24 Go) gère de façon stable 2 jobs simultanés ; pour davantage, optez pour un Mini Pro (64 Go), voir les formules de location.

Débogage à distance sur appareil physique

  1. Si l'iPhone de test et le Mac cloud ne sont pas sur le même réseau local, utilisez un outil comme WireGuard pour placer les deux appareils dans le même sous-réseau.
  2. Le premier appairage se fait dans la fenêtre Devices and Simulators de Xcode, via une session VNC ; une seule fois suffit.
  3. Cochez le débogage réseau lors de l'appairage ; ensuite, xcodebuild -destination 'platform=iOS,name=nom-de-l-appareil' permet de cibler directement l'appareil physique.
  4. Pour exécuter uniquement des tests unitaires ou des tests UI sur simulateur, aucun appareil physique n'est nécessaire : c'est utilisable dès la livraison, sans aucune configuration réseau.

Réinstaller macOS

  1. Connectez-vous au panneau de contrôle → détail de l'instance → réinstaller le système, avec le choix entre macOS 14 et 15.
  2. La réinstallation efface tout le disque de façon irréversible ; téléchargez d'abord un snapshot depuis le panneau de contrôle.
  3. Entièrement en libre-service, retour à l'état prêt à se connecter en 10 minutes en moyenne, avec de nouveaux identifiants réinitialisés automatiquement et renvoyés par e-mail.
  4. Sans limite de nombre ni frais supplémentaires. Système planté, envie de changer de version majeure, ou nettoyage manuel avant résiliation : cette solution couvre tous ces cas.
Glossary

Petit glossaire

Huit termes fréquents dans la documentation et les échanges de tickets, à définition unifiée pour éviter les malentendus.

Dedicated hardware
Un Mac mini physique complet livré directement, le système tournant sur le matériel réel, sans couche de virtualisation : aucune perte de performance.
Dédié
Une machine n'appartient qu'à un seul locataire à un instant donné. CPU, RAM, SSD et bande passante 1 Gbit/s ne sont partagés avec personne.
VNC
Protocole d'accès graphique distant. Une fois connecté, vous voyez le bureau macOS complet : c'est par là que passent l'appairage d'appareils et la validation des fenêtres système.
Runner self-hosted
Exécuteur CI enregistré sur votre propre machine. Les tâches macOS de GitHub Actions / GitLab CI s'exécutent directement sur ce Mac, sans passer par la file d'attente officielle.
Mémoire unifiée
Sur Apple Silicon, le CPU et le GPU partagent le même pool de mémoire. Un modèle avec 64 Go peut charger directement de gros modèles quantifiés, sans les limites d'une VRAM dédiée.
Apple Silicon
Puces ARM conçues par Apple (M4 / M4 Pro sur ce site). Cible native pour les builds sur appareil iOS ainsi que les expérimentations MLX et CoreML.
Snapshot
Image compressée de la totalité du disque. Peut être créée et téléchargée localement à tout moment depuis le panneau de contrôle : une sécurité avant réinstallation, résiliation ou changement de nœud.
SLA
Engagement de disponibilité de service, fixé à 99,9 % sur ce site. En cas de non-respect, une compensation en durée est appliquée selon les modalités détaillées sur la page Engagements de sécurité.
Troubleshoot

Checklist de diagnostic

Ces trois catégories de problèmes représentent environ 70 % du volume des tickets. Suivez l'ordre indiqué : la plupart se résolvent aux étapes 2 ou 3.

Impossible de se connecter en SSH

  1. Vérifiez dans le panneau de contrôle que l'instance est bien à l'état running, avec un indicateur d'alimentation normal.
  2. Faites un ping / mtr local vers le domaine du nœud. En cas de forte perte de paquets, changez de réseau ou revérifiez la ligne avec l'IP de test de la page Localisation des nœuds.
  3. Vérifiez le port 22 et le nom d'utilisateur dev ; lancez ssh -v pour voir à quelle étape la négociation se bloque.
  4. Si vous avez modifié sshd_config et êtes bloqué à l'extérieur : forcez le redémarrage depuis le panneau de contrôle, puis passez par VNC pour rétablir la configuration.
  5. Toujours bloqué ? Collez la sortie complète de ssh -vvv dans votre ticket.

Erreur de signature lors du build

  1. errSecInternalComponent ou échec d'accès au porte-clés : exécutez d'abord security unlock-keychain login.keychain-db.
  2. Une session CI ne déverrouille pas le porte-clés par défaut : ajoutez la commande de déverrouillage en début de script, ou passez par fastlane match pour gérer les certificats.
  3. Vérifiez que le certificat est bien importé : security find-identity -v -p codesigning doit lister votre identité de signature.
  4. Une erreur unsupported SDK provient le plus souvent d'une version de Xcode incompatible : suivez le guide ci-dessus pour changer de version et réessayer.

Écran noir en VNC

  1. Testez d'abord la SSH : si la connexion fonctionne, le système est sain et seul le service d'affichage est en cause — pas besoin de réinstaller dans la précipitation.
  2. Depuis la SSH, redémarrez le service de partage d'écran : sudo launchctl kickstart -k system/com.apple.screensharing.
  3. Une résolution trop élevée peut provoquer un écran noir ou brouillé : abaissez-la à 1920×1080 côté client et reconnectez-vous.
  4. Si rien ne fonctionne, redémarrez l'instance depuis le panneau de contrôle. La machine dispose d'un écran virtuel intégré et l'affichage revient au redémarrage.
Tickets

Tickets et délais de réponse

L'équipe support couvre les fuseaux UTC+8 et UTC-8 en rotation. Deux canaux seulement : les tickets du panneau de contrôle et l'e-mail de support ; pas de téléphone ni de chat en direct.

Ticket dans le panneau de contrôle (recommandé)

Chemin : panneau de contrôle → Tickets → Nouveau, en sélectionnant l'instance concernée. Le ticket embarque automatiquement le contexte de l'instance, pour un traitement plus rapide. À utiliser pour : panne d'instance, demande de version Xcode, changement de configuration, aide à la réinstallation.

  • Précisez l'ID de l'instance, le nœud et le moment où le problème est survenu
  • Collez la commande complète et le message d'erreur en texte, pas en capture d'écran
  • Listez les étapes de cette checklist déjà vérifiées, pour éviter les allers-retours

E-mail de support

Pour un problème de connexion au panneau de contrôle, une question de facturation ou de facture, ou une question technique avant commande, écrivez à support@oncemini.com. Précisez le sujet dans le titre et indiquez votre e-mail d'inscription dans le corps du message, pour faciliter le lien avec votre compte.

  • Envoyez depuis votre e-mail d'inscription pour éviter les échanges de vérification d'identité
  • D'autres cas de contact et des modèles de message sont disponibles sur la page Contact
Type de problème Première réponse Couverture horaire Canal conseillé
Panne critique (instance hors ligne, connexion totalement impossible) 30 min 7j/7, 24h/24 Ticket dans le panneau de contrôle, marqué en urgence
Problème technique courant (build, configuration, performance) 2 h Horaires ouvrés (rotation UTC+8 / UTC-8) Ticket dans le panneau de contrôle
Facturation, facture et question avant commande 1 jour ouvré Horaires ouvrés support@oncemini.com
Uptime

Disponibilité et politique de notification

FAQ

Questions fréquentes sur la facturation

Les questions de connexion et de build sont traitées plus haut ; ici, place aux questions d'argent et de données. Le détail des tarifs figure sur la page des formules de location.

À partir de quand la facturation commence-t-elle ?

Le décompte démarre au moment où l'e-mail contenant les identifiants est reçu, pas au moment de la commande. Pour les formules à la journée, une journée équivaut à 24 heures ; le délai moyen de livraison de 5 minutes n'est pas facturé.

Comment renouveler ? Le prélèvement est-il automatique ?

La page de détail de l'instance dans le panneau de contrôle permet de renouveler manuellement à tout moment, ou d'activer le renouvellement automatique. Un e-mail de rappel est envoyé 72 heures puis 24 heures avant l'échéance. En cas d'échec du renouvellement automatique (carte expirée, par ex.), un e-mail vous informe immédiatement, avec une période tampon de 72 heures.

Si je ne renouvelle pas à l'échéance, les données sont-elles supprimées immédiatement ?

Non. À l'échéance, l'instance est d'abord arrêtée et les données sont conservées 72 heures ; un renouvellement pendant ce délai restaure tout à l'identique. Passé 72 heures, la clé de chiffrement du volume APFS est détruite et le disque entier est écrasé, de façon irréversible — le détail de la procédure est disponible sur la page Engagements de sécurité.

Comment migrer les données d'une ancienne machine vers une nouvelle ?

Si les deux machines sont encore actives, la synchronisation directe de machine à machine est la solution la plus rapide : rsync -avz -e "ssh -p 22" ~/work/ dev@nouveau-nœud:~/work/, avec un débit interne pouvant saturer le gigabit entre nœuds d'une même région. Vous pouvez aussi télécharger un snapshot depuis le panneau de contrôle et le restaurer sur la nouvelle machine.

Quels moyens de paiement sont acceptés ?

Tous les prix et paiements sont exprimés en dollars US. Les principaUSDT-TRC20 ainsi que Visa / Mastercard / Amex (Stripe) sont acceptés ; les moyens exacts sont ceux listés sur la page de paiement du portail. Aucun frais de trafic caché : le montant facturé correspond au tarif affiché de la formule.

Peut-on obtenir une facture ?

Chaque paiement génère automatiquement un reçu PDF, téléchargeable à tout moment depuis la page de facturation du panneau de contrôle. Pour une facture avec raison sociale spécifique ou des informations fiscales complémentaires, écrivez à support@oncemini.com : traitement sous 1 jour ouvré.

Comment est calculé le coût d'une mise à niveau en cours de location ?

La mise à niveau est calculée au prorata de la différence de prix sur la période restante : seul le complément est facturé, sans double facturation. Soumettez la demande de mise à niveau depuis le panneau de contrôle ; les données sont migrées vers la nouvelle configuration via un snapshot, l'ancienne machine restant disponible pendant l'opération. Une rétrogradation doit attendre la fin de la période en cours.

Puis-je être remboursé si ma première commande ne me convient pas ?

Un remboursement intégral peut être demandé dans les 24 heures suivant la livraison de la première commande ; les périodes de renouvellement ne sont pas remboursables. Il est conseillé de tester d'abord une journée à 19,9 $ pour faire tourner vos propres scripts de build avant de décider d'un abonnement mensuel.

La réinstallation de macOS est-elle payante ? Y a-t-il une limite de nombre ?

Gratuite, sans limite de nombre, entièrement en libre-service depuis le panneau de contrôle, en 10 minutes en moyenne. Le seul point d'attention : la réinstallation efface tout le disque, pensez à télécharger un snapshot au préalable.

Un même compte peut-il louer plusieurs machines ? Peut-on sous-louer à un tiers ?

Un même compte peut louer plusieurs machines simultanément ; une pratique courante en équipe consiste à louer une machine par projet, avec un label pour distinguer les runners. La sous-location ou la revente à un tiers enfreint les conditions générales de service et entraîne la résiliation en cas de constat ; en revanche, un usage partagé par plusieurs membres d'une même équipe n'est pas limité.

$ oncemini ticket new --priority normal

La documentation ne couvre pas votre cas ?

Connectez-vous au panneau de contrôle pour ouvrir un ticket : réponse en moins de 2 heures en horaires ouvrés. Pas encore de machine ? Testez d'abord une location à la journée.