Dedicated M4 Cloud MacRent by the day. Xcode ready at startup.

Every order gives you a dedicated Apple Silicon machine, not a virtual machine. The CPU, GPU and unified memory are yours alone. Run macOS natively, with Xcode and the Simulator ready at startup.

For iOS and macOS development, always-on CI and Apple Silicon experiments. Billed in USD, with no annual commitment.

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
~ %
Node label · Node Core M4 Dedicated · Physical machine
ChipApple M4
Memory16GB unified memory
SSD256GB
Locationsg-01 · Singapore
Term1 day · $21.3

Example delivery details. The node ID, command output and Xcode version depend on your actual machine. Find connection credentials in your order details in the console.

Dedicated machinePhysical machineMac mini M4Billed in USD
Dedicated physical machine

Why a whole machine?

Fewer shared-resource bottlenecks. More reproducible development environments. The machine is yours for the rental term, and you decide what runs on it.

Dedicated physical machine

Each M4 is assigned to one customer. The CPU, GPU and unified memory aren’t shared with other customers, and there’s no shared host. Pin your build settings, caches and job concurrency, then compare results on the same project.

Dedicated doesn’t mean every run takes exactly the same time. Incremental caches, disk I/O, dependency downloads and your own parallel jobs still affect results. When investigating performance, compare clean and incremental builds separately.

Native macOS environment

Use the full macOS GUI and command line. Xcode, the iOS Simulator, Metal and Instruments run on real Apple Silicon, with the GPU accessible outside a virtualization layer.

After connecting, check the Xcode and SDK versions before installing project dependencies. Record your toolchain versions in the repo to reduce “works locally, fails remotely” issues.

Daily, weekly, monthly or quarterly

Rent for as little as one day. Choose a day for a quick test, a week for a release sprint, or a month or quarter for always-on CI. Stop renewing when the project ends—no hardware purchase or annual commitment required.

Rental periods are prepaid; billing isn’t per second. Stopping a job doesn’t refund a period already started. Before you finish, export your artifacts, project and required settings, then check your order’s expiry date.

Two configurations

Node Core M4 and Node Pro M4

Prices are in USD and the same across all four locations. Choose based on memory and workspace needs, then decide how long to rent.

Node Pro M4

M4 Pro · 64GB / 2TB SSD

More memory for parallel workloads
$59.1/ day
Day$59.1
Week$159.6
Month$295.6
Quarter$804
  • Parallel Simulator testing and large Swift projects
  • Choose Singapore, Tokyo, Seoul or Hong Kong
  • MLX inference, model experiments and larger workspaces

64GB unified memory and a 2TB SSD give parallel workloads more room. Model weights, KV cache, input data and the system all use memory, so don’t choose based on model file size alone.

Rent Node Pro M4 Credentials are provided in your console order details

Both plans can be configured with a +1TB SSD, +2TB SSD or Thunderbolt 5 parallel add-on. For exact prices and bundle rates, see the full rental plans. Availability is confirmed live in the console.

Asia-Pacific locations

Four locations, both plans available

Singapore, Tokyo, Seoul and Hong Kong. Narrow down your options by team time zone, then test connectivity on your own network.

SG

Singapore

For teams in Southeast Asia

Team time zone
UTC+7 to +8
Typical latency
20–50 ms

A good fit for teams in Southeast Asia: collaborate and debug during the day, run batch builds overnight. Keep dependency caches on the machine to avoid repeated transfers across networks.

Both plans availableChoose a location →
JP

Tokyo, Japan

For teams in East Asia

Team time zone
UTC+9
Typical latency
30–60 ms

A good fit for teams working primarily on UTC+9 schedules. For extended remote desktop sessions, compare round-trip latency and network jitter first.

Both plans availableChoose a location →
KR

Seoul, South Korea

For teams in Northeast Asia

Team time zone
UTC+9
Typical latency
30–50 ms

A good fit for teams in Northeast Asia running always-on runners. Fetch dependencies, build and test on the same machine, then transfer only the finished artifacts to your workstation.

Both plans availableChoose a location →
HK

Hong Kong

For teams in southern China and Southeast Asia

Team time zone
UTC+7 to +8
Typical latency
20–40 ms

A good fit for engineering collaboration and releases around UTC+8. Before syncing a large repo, check bandwidth: low latency doesn’t necessarily mean faster large-file transfers.

Both plans availableChoose a location →

Latency ranges are for comparing locations, not measurements of your current connection. Your experience depends on network routing, client and image quality settings. Availability is confirmed live in the console. All machines run 365 days a year.

Migration, step by step

Move from your Mac to the cloud in three steps

Validate your data, toolchain and CI separately. Get one complete build working before migrating automated jobs.

01 · Data

Project files and signing assets

Use rsync for incremental project transfers and Git LFS for large files in your repo. Migrate signing certificates and provisioning profiles separately, then import certificates into the machine’s Keychain. Never commit private keys to your repo.

Set the actual host to sg-01in your SSH config before running the example. After the first sync, check hidden files, permissions and dependency lockfiles so you don’t copy only the source code.

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

Record your versions

Record your Xcode, SDK, Homebrew and Fastlane versions. First run xcodebuild -version to check the environment, then install dependencies from your Brewfile and Gemfile.

The example assumes Homebrew and Bundler are installed on the machine and the relevant manifests are in the current directory. If you use multiple Xcode versions, select the developer directory explicitly instead of relying on the machine’s default.

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

Register a persistent runner

Connect a self-hosted runner to GitHub Actions or GitLab CI. Get the registration command and short-lived token from your project settings. Don’t put tokens in images or long-lived config.

Once your GitHub Actions runner is configured, install and start the service with the command below. Run builds and tests sequentially first, then adjust concurrency based on peak memory. For GUI tests, also check the session environment.

./svc.sh install && ./svc.sh start
Local Mac · project and manifestsCloud Mac · builds and artifacts

Keep a local backup before migrating. Run an archive and tests, then download the artifacts before switching scheduled jobs to the new machine. For full SSH, remote desktop and runner setup, see the connection guide.

Use cases

Three workloads. One dedicated machine.

These UI snapshots illustrate how to organize workloads; they don’t represent measured runtimes or performance guarantees.

01 · Build and release

Build iOS and macOS apps, then upload to TestFlight

Run archiving, export and upload in sequence on the same machine. Keeping your project version, signing assets and toolchain consistent matters more than looking at the time taken for a single build.

Start with a clean build, then test an incremental build with a warm cache. Save archives, logs and exported artifacts by build number to pinpoint whether a failure occurred during compilation, signing or upload.

xcodebuildFastlaneTestFlight
sg-01 · release/2.8.0Workflow example
xcodebuild archive -scheme AppArchive complete
xcodebuild -exportArchiveExport complete
bundle exec fastlane pilot uploadUploading
TestFlight processingWaiting for response

Keep each step’s exit code and logs. A successful upload doesn’t mean processing is complete.

02 · CI/CD

Persistent runner. Your queue, your rules.

Rent by the month or quarter and register the machine as a self-hosted runner. Keep dependency caches and DerivedData on the machine to avoid repeat downloads; include toolchain and dependency versions in your cache key.

A dedicated machine won’t prevent job conflicts for you. Add mutual exclusion to release workflows to avoid simultaneous changes to signing settings. Schedule UI tests separately from background builds, and monitor your own resource peaks.

GitHub ActionsGitLab CIlaunchd
runner · xn-sel-01Queue example
pr-1482 · unit-testsRunning
pr-1479 · ui-testsWaiting
nightly · archiveComplete
main · lintComplete

You control the queue and concurrency; your jobs aren’t mixed with other customers’ tasks.

03 · Apple Silicon AI

MLX experiments with room for unified memory

Node Pro M4 comes with an M4 Pro, 64GB unified memory and a 2TB SSD. The CPU and GPU share unified memory, making it suitable for MLX inference and fine-tuning experiments on a dedicated machine.

To check whether a model fits, account for weights, context cache, training state and system usage. Set quantization, context length and batch size first, then record throughput and peak memory. Don’t compare results across different settings.

mlx-lmMetal64GB unified memory
hkg-01 · Node Pro M4Memory planning example
Unified memory budget64GB
Model weightsContext cacheSystem and headroom
python -m mlx_lm.generateInference job
Record peak memory and tokens/sMeasure with your model

The color bands show budget categories, not live memory usage on the machine.

How teams work

Let the machine handle the jobs, and you focus on building

Examples of how three roles might work, written in the first person. These aren’t real customer testimonials.

“I want overnight builds queued on the Seoul machine. When I close my laptop, I know I can find the logs and artifacts by build number the next day.”

Independent iOS developer · example scenario

“I need a consistent toolchain and cache on my runner. When comparing regressions, I rule out my own concurrent jobs before looking at the impact of code changes.”

Mobile CI lead · example scenario

“I count model weights, context cache and system usage against the 64GB memory budget. I save the settings for each experiment so the results are worth comparing.”

Machine learning researcher · example scenario

Pay in USD with either of two payment methods

Pay with USDT-TRC20 or Visa, Mastercard or Amex via Stripe. Available payment gateways are confirmed by the backend. Check payment and delivery status in the console.

USDT-TRC20Visa / Mastercard / Amex · via Stripe
How billing works →

Your bill includes the machine rental and any add-ons you select. Before paying, check the location, term, storage expansion and number of parallel connections. For on-chain payments, verify the network and amount; for card payments, check the bank’s verification result. Never send passwords, private keys or full card numbers to support.

FAQ

Four common questions, answered

Understand delivery, access and data handling before you decide to rent.

Is this a virtual machine?

No. Each order gives you a dedicated Apple Silicon machine, assigned to one customer with no shared host. You’re still responsible for your jobs, system settings and project dependencies; dedicated resources don’t replace capacity planning for your projects.

How do I connect after paying?

Check payment and delivery status in your order details in the console. Connection credentials are provided with your machine. Verify the host address and SSH key before connecting to the remote desktop. Don’t connect using the example node ID on the homepage; follow the connection guide.

What should I do before my rental ends?

Download your archives, test results and essential project data, then check your renewal and expiry status. When the rental ends, the disk is erased and the system is reinstalled, so don’t use the machine as your only backup. For expiry procedures and order terms, see the Terms of Service.

Can I use my existing CI setup?

Yes. Register the machine as a self-hosted runner for GitHub Actions or GitLab CI. Your project provides the registration permissions and token; the machine runs the jobs. Start by testing a single pipeline, then configure startup, caching and concurrency. For connection or build help, see support guide.

Get your M4 today

Choose a model, location and rental term. Test with a real build first, then decide on a longer-term setup.

Node Core M4 from $21.3/day · Same rates at all four locations · Availability confirmed live in the console