Un Mac M4 dans le cloud, rien que pour vousÀ la journée, avec Xcode prêt au démarrage

Chaque commande vous attribue une machine Apple Silicon physique dédiée dans un centre de données, et non une machine virtuelle. Le CPU, le GPU et la mémoire unifiée sont à votre entière disposition. macOS fonctionne nativement, avec Xcode et le simulateur prêts à l’emploi.

Pour le développement iOS et macOS, les runners CI permanents et les expérimentations sur Apple Silicon. Facturation en dollars, sans engagement annuel.

sg-01 · M4 zsh — xn@sg-01
~ % xn lease --plan core --node sg
✓ leased sg-01 · Node Core M4 · 1d · $21.3 USD · dedicated
~ % sysctl -n machdep.cpu.brand_string
Apple M4
~ % xcodebuild -version
Xcode 16.4
Build version 16F6
~ % uptime
10:42 up 3 mins, 1 user, load averages: 0.21 0.34 0.18
~ %
Fiche du nœud · Node Core M4 Dédié · machine physique
PuceApple M4
Mémoire16 Go de mémoire unifiée
SSD256 Go
Nœudsg-01 · Singapour
Durée1 jour · $21.3

Exemple de vérification à la livraison. Le numéro du nœud, les commandes et la version de Xcode peuvent varier. Les identifiants de connexion figurent dans les détails de la commande, sur le portail.

Machine entière dédiéeNœud physiqueMac mini M4Facturation en dollars
Machines physiques dédiées

Pourquoi louer une machine entière ?

Moins de concurrence pour les ressources, un environnement de développement plus reproductible. La machine est à vous pendant toute la durée de location, et vous gérez vos charges de travail.

Une machine physique dédiée

Chaque M4 est attribué à un seul locataire. Vous ne partagez ni CPU, ni GPU, ni mémoire unifiée avec d’autres locataires, et il n’y a pas d’hôte partagé. Vous pouvez fixer les paramètres de compilation, le cache et le nombre de tâches parallèles, puis comparer les résultats sur un même projet.

Une machine dédiée ne garantit pas un temps d’exécution identique à chaque fois. Le cache incrémental, les accès disque, le téléchargement des dépendances et vos propres tâches parallèles influent toujours sur les résultats. Pour analyser les performances, distinguez les builds à froid des builds incrémentaux.

Un environnement macOS natif

L’interface graphique et la ligne de commande macOS sont pleinement accessibles. Xcode, le simulateur iOS, Metal et Instruments tournent sur du véritable Apple Silicon, sans couche de virtualisation entre le GPU et vos applications.

À la prise en main du nœud, vérifiez d’abord les versions de Xcode et du SDK, puis installez les dépendances du projet. Consignez les versions de la chaîne d’outils dans le dépôt pour limiter les écarts entre les environnements locaux et distants.

À la journée, à la semaine, au mois ou au trimestre

Une journée minimum. Choisissez la journée pour un essai ponctuel, la semaine pour une période de publication intensive, ou le mois ou le trimestre pour un runner CI permanent. À la fin du projet, vous pouvez arrêter la location sans renouvellement ni achat de matériel ni budget immobilisé sur un an.

La location est prépayée pour une durée définie, et non facturée à la seconde. L’arrêt des tâches ne rembourse pas une période déjà entamée. Avant la fin de la location, exportez vos livrables, votre projet et les configurations nécessaires, puis vérifiez la date d’expiration de la commande.

2 configurations

Node Core M4 et Node Pro M4

Tarifs en dollars, identiques sur les quatre nœuds. Commencez par évaluer la mémoire et l’espace de travail, puis la durée nécessaire.

Node Pro M4

M4 Pro · 64 Go / SSD 2 To

Pour le multitâche intensif
$59.1/ jour
Jour$59.1
Semaine$159.6
Mois$295.6
Trimestre$804
  • Tests simultanés sur simulateurs et grands projets Swift
  • Singapour / Tokyo / Séoul / Hong Kong au choix
  • Inférence MLX, expérimentation sur des modèles et espace de travail plus vaste

Les 64 Go de mémoire unifiée et le SSD de 2 To offrent davantage de marge pour les tâches parallèles. Les poids des modèles, le cache KV, les données d’entrée et le système occupent tous de la mémoire. Pour choisir, ne vous fiez pas uniquement à la taille du fichier du modèle.

Louer Node Pro M4 Les identifiants sont fournis dans les détails de la commande, sur le portail

Les deux configurations peuvent recevoir un SSD supplémentaire de +1 To, un SSD de +2 To ou un accessoire Thunderbolt 5 en chaînage. Consultez les offres de location complètes pour connaître les tarifs et les combinaisons. La disponibilité réelle est indiquée par le portail.

Nœuds en Asie-Pacifique

4 nœuds, disponibles dans les deux configurations

Singapour, Tokyo, Séoul et Hong Kong. Commencez par tenir compte du fuseau horaire de votre équipe, puis testez la connexion sur votre propre réseau.

SG

Singapour

Équipes d’Asie du Sud-Est

Fuseau horaire
UTC+7 ~ +8
Latence indicative
20~50 ms

Un bon choix pour les équipes d’Asie du Sud-Est qui développent en journée et lancent des builds par lots la nuit. Gardez le cache des dépendances sur le nœud pour limiter les transferts répétés sur le réseau.

2 configurations disponiblesChoisir ce nœud →
JP

Japon · Tokyo

Équipes d’Asie de l’Est

Fuseau horaire
UTC+9
Latence indicative
30~60 ms

Adapté aux équipes qui travaillent principalement selon le fuseau UTC+9. Pour de longues sessions sur le bureau graphique, comparez d’abord la latence aller-retour et la gigue du réseau.

2 configurations disponiblesChoisir ce nœud →
KR

Corée du Sud · Séoul

Équipes d’Asie du Nord-Est

Fuseau horaire
UTC+9
Latence indicative
30~50 ms

Un bon choix pour les équipes d’Asie du Nord-Est qui utilisent un runner en continu. Exécutez récupération, compilation et tests sur le même nœud, puis ne transférez que les livrables vers votre poste de travail.

2 configurations disponiblesChoisir ce nœud →
HK

Hong Kong

Équipes du sud de la Chine et d’Asie du Sud-Est

Fuseau horaire
UTC+7 ~ +8
Latence indicative
20~40 ms

Adapté aux équipes qui collaborent et publient autour du fuseau UTC+8. Avant de synchroniser de grands dépôts, vérifiez la bande passante : une faible latence ne garantit pas des transferts de gros fichiers plus rapides.

2 configurations disponiblesChoisir ce nœud →

Les plages de latence servent uniquement à comparer les emplacements et ne correspondent pas à une mesure de votre connexion. L’expérience réelle dépend du routage réseau, du client et des paramètres de qualité d’image. La disponibilité en temps réel est indiquée par le portail. Tous les nœuds fonctionnent 365 jours par an.

Une migration étape par étape

Transférez votre Mac local vers le cloud en 3 étapes

Validez les données, la chaîne d’outils et la CI séparément. Commencez par un build complet, puis migrez vos tâches automatisées.

01 · Données

Projet et éléments de signature

Synchronisez le projet par incréments avec rsync et gérez les fichiers volumineux du dépôt avec Git LFS. Transférez séparément les certificats de signature et les profils, puis importez les certificats dans le trousseau du nœud. Ne placez jamais de clé privée dans le dépôt.

Dans votre configuration SSH, définissez d’abord l’hôte réel sur sg-01, puis lancez l’exemple. Après la première synchronisation, vérifiez les fichiers cachés, les permissions et les fichiers de verrouillage des dépendances afin de ne pas vous limiter à une copie du code source.

rsync -az --progress ./App xn@sg-01:~/work/
02 · Outils

Consignez les versions

Notez les versions de Xcode, du SDK, de Homebrew et de Fastlane. Commencez par exécuter xcodebuild -version pour vérifier l’environnement, puis installez les dépendances définies dans le Brewfile et le Gemfile.

L’exemple suppose que Homebrew et Bundler sont installés sur le nœud et que les fichiers de configuration correspondants se trouvent dans le répertoire courant. Si vous utilisez plusieurs versions de Xcode, définissez explicitement le répertoire développeur au lieu de dépendre de la version par défaut de la machine.

brew bundle --file=Brewfile && bundle install
03 · CI

Enregistrez un runner permanent

Ajoutez un runner self-hosted à GitHub Actions ou GitLab CI. Récupérez la commande d’enregistrement et le jeton temporaire dans l’interface de gestion de votre projet. Ne stockez pas le jeton dans une image ni dans une configuration durable.

Une fois le runner GitHub Actions configuré, utilisez les commandes ci-dessous pour installer et démarrer le service. Exécutez d’abord les builds et les tests en série, puis ajustez le parallélisme en fonction de la mémoire maximale utilisée. Pour les tests graphiques, vérifiez aussi l’environnement de session.

./svc.sh install && ./svc.sh start
Mac local · projet et fichiers de configurationMac dans le cloud · builds et livrables

Conservez une sauvegarde locale avant la migration. Après avoir créé une archive, exécuté les tests et téléchargé les livrables, basculez vos tâches planifiées vers le nouveau nœud. Le guide de connexion détaille SSH, le bureau graphique et la configuration du runner.

Cas d’usage

3 types de charges de travail, une seule machine

Les extraits d’interface ci-dessous illustrent l’organisation des tâches, sans présenter de durées mesurées ni promettre de performances.

01 · Build et publication

Builds iOS / macOS et envoi sur TestFlight

L’archivage, l’export et l’envoi s’exécutent à la suite sur une même machine. Garder la version du projet, les éléments de signature et la chaîne d’outils cohérents est plus utile que de se fier à la durée d’un seul build.

Effectuez d’abord un build propre, puis testez un build incrémental avec le cache. Archivez l’archive, les journaux et les livrables exportés avec le numéro du build pour savoir, en cas d’échec, s’il vient de la compilation, de la signature ou de l’envoi.

xcodebuildFastlaneTestFlight
sg-01 · release/2.8.0Exemple de flux
xcodebuild archive -scheme AppArchive terminée
xcodebuild -exportArchiveExport terminé
bundle exec fastlane pilot uploadEnvoi en cours
Résultat du traitement TestFlightEn attente

Conservez le code de sortie et les journaux de chaque étape : un envoi réussi ne signifie pas que le traitement est terminé.

02 · CI/CD

Un runner permanent, une file d’attente à votre main

Louez une machine au mois ou au trimestre et enregistrez-la comme runner self-hosted. Le cache des dépendances et DerivedData restent sur la machine, ce qui limite les téléchargements répétés. Pensez toutefois à inclure les versions des outils et des dépendances dans la clé de cache.

Une machine dédiée ne supprime pas les conflits entre vos tâches. Ajoutez une exclusion mutuelle à votre processus de publication pour éviter que deux tâches modifient la configuration de signature en même temps. Planifiez séparément les tests UI et les builds en arrière-plan, et surveillez les pics d’utilisation de vos ressources.

GitHub ActionsGitLab CIlaunchd
runner · xn-sel-01Exemple de file
pr-1482 · unit-testsEn cours
pr-1479 · ui-testsEn attente
nightly · archiveTerminé
main · lintTerminé

La file d’attente et le parallélisme sont configurés par vos soins. Les tâches ne sont pas mélangées à celles d’autres locataires.

03 · IA sur Apple Silicon

Expérimentez avec MLX en gardant de la mémoire disponible

Node Pro M4 est équipé d’une puce M4 Pro, de 64 Go de mémoire unifiée et d’un SSD de 2 To. CPU et GPU partagent cette mémoire unifiée. Vous pouvez l’utiliser pour l’inférence MLX et des expériences de fine-tuning, sans découpage par virtualisation.

Pour savoir si un modèle tient en mémoire, tenez compte des poids, du cache de contexte, de l’état d’entraînement et des ressources utilisées par le système. Fixez d’abord la quantification, la longueur du contexte et la taille des lots, puis mesurez le débit et la mémoire maximale utilisée. Vous pourrez ainsi comparer les résultats dans les mêmes conditions.

mlx-lmMetal64 Go de mémoire unifiée
hkg-01 · Node Pro M4Exemple de répartition mémoire
Budget mémoire unifiée64 Go
Poids du modèleCache de contexteSystème et marge
python -m mlx_lm.generateInférence
Mesure de la mémoire max. et des tokens/sÀ mesurer selon le modèle

Les bandes illustrent la répartition du budget, pas l’utilisation mémoire en temps réel du nœud.

Votre façon de travailler

Confiez la machine aux tâches, gardez du temps pour développer

Trois exemples de besoins selon différents profils, présentés à la première personne pour illustrer des façons de travailler. Ce ne sont pas des témoignages de clients réels.

« Je veux que les builds nocturnes restent dans la file du nœud de Séoul. Même après avoir fermé mon ordinateur, je peux retrouver le lendemain les journaux et les livrables par numéro de build. »

Développeur iOS indépendant · exemple de situation

« Je veux garder une chaîne d’outils et un cache stables sur mon runner. Pour comparer les régressions, je commence par écarter l’effet de mes tâches parallèles, puis j’examine les changements de code. »

Responsable CI mobile · exemple de situation

« J’intègre les poids des modèles, le cache de contexte et l’utilisation du système dans mon budget de 64 Go. Je sauvegarde les paramètres de chaque expérience pour que les résultats soient comparables. »

Chercheur en apprentissage automatique · exemple de situation

Facturation en dollars, deux moyens de paiement

Payez en USDT-TRC20 ou par Visa / Mastercard / Amex via Stripe. Les moyens de paiement réellement disponibles sont indiqués par l’interface du serveur. Vérifiez l’état du paiement et de la livraison sur le portail.

USDT-TRC20Visa / Mastercard / Amex · via Stripe
Comprendre votre facture →

La facture comprend la durée de location de la configuration choisie et les options ajoutées. Avant de payer, vérifiez le nœud, la durée, l’extension de stockage et le nombre de connexions en chaînage. Pour un paiement sur la blockchain, vérifiez le réseau et le montant. Pour un paiement par carte, vérifiez la confirmation de votre banque. N’envoyez jamais de mot de passe, de clé privée ni de numéro de carte complet aux équipes d’assistance.

FAQ

Les 4 questions les plus fréquentes

Faites le point sur la livraison, la connexion et vos données avant de vous décider.

S’agit-il d’une machine virtuelle ?

Non. Chaque commande correspond à une machine Apple Silicon physique dédiée, attribuée à un seul locataire sans hôte partagé. Vous restez responsable de vos tâches, des réglages système et des dépendances de vos projets. Des ressources dédiées ne remplacent pas la planification de la capacité nécessaire à votre projet.

Comment me connecter après le paiement ?

Consultez l’état du paiement et de la livraison dans les détails de la commande, sur le portail. Les identifiants de connexion sont fournis avec la livraison effective. Vérifiez l’adresse de l’hôte et la clé SSH avant de vous connecter au bureau graphique. Ne vous connectez pas en utilisant le numéro de nœud de l’exemple en page d’accueil. Consultez le guide de connexion pour la marche à suivre.

Que faire avant la fin de la location ?

Téléchargez vos archives, résultats de tests et données de projet nécessaires, puis vérifiez le renouvellement et la date d’expiration. À la fin de la location, les données sont traitées par effacement du disque et réinstallation du système. Ne faites pas du nœud votre unique sauvegarde. Les conditions de commande et la procédure d’expiration sont détaillées dans les conditions d’utilisation.

Puis-je l’intégrer à ma CI existante ?

Oui. Vous pouvez l’enregistrer comme runner self-hosted pour GitHub Actions ou GitLab CI. Votre projet fournit les autorisations d’enregistrement et le jeton, et le nœud exécute les tâches. Validez d’abord l’intégration avec un pipeline de test, puis configurez le démarrage automatique, le cache et le parallélisme. En cas de problème de connexion ou de build, consultez les informations d’assistance.

Louez votre Mac M4 dès aujourd’hui

Choisissez une configuration, un nœud et une durée. Commencez par valider un vrai build, puis décidez si une location plus longue vous convient.

Node Core M4 dès $21.3/jour · Même tarif sur les quatre nœuds · Disponibilité en temps réel sur le portail