From order to first archive

Move your development workflow to a Cloud Mac

This is more than a guide to logging in. Choose between two physical device tiers, select one of four Asia-Pacific nodes, then harden credentials, restore your toolchain, verify code and signing, connect your CI Runner, and validate the first task with a reproducible record.

2 tiers Fixed hardware configurations
4 nodes Singapore, Tokyo, Seoul, Hong Kong
4 billing periods Rent by the day, week, month, or quarter
Device runbook First-build acceptance path
Ready
SOURCE Local Mac
TARGET NUMACS Cloud Mac
  1. 01
    Establish a secure connection Change the initial credentials, add an SSH public key, and verify remote desktop access.
    Complete
  2. 02
    Restore the project toolchain Pin Xcode, Ruby, Node.js, and dependency manager versions.
    Pending
  3. 03
    Run tests and create an archive Record duration, logs, artifact checksums, and available disk space.
    Pending
A run is complete when it is reproducible, reversible, and verifiable—not merely when the tools are installed.

Before you start

Define the migration scope before creating an order

The preparation phase defines the device configuration, node, access methods, and data responsibilities. If any one is missing, environment recovery can turn into trial and error.

A

Repository access

Confirm whether the repository uses SSH or short-lived access tokens, and list private dependencies, submodules, and artifact repositories. Do not copy long-lived personal private keys; generate a separate key for the Cloud Mac and grant only the permissions the project needs.

B

Signing asset management

Organize certificates, provisioning profiles, Keychain access requirements, and archive export procedures. Migrate only sanitized copies needed for testing, record the import order and access controls, and never put complete credentials in the repository or build logs.

C

Node and network path

Choose a target node from Singapore, Tokyo, Seoul, and Hong Kong. Test the connection path from the actual office network first; for cross-region teams, validate separately from the primary operator's network and the CI source network.

D

Billing period and exit plan

Use a daily or weekly period for short-term validation, or a monthly or quarterly period for stable projects. Whichever you choose, define the backup location, artifact export directory, and owner responsible for migration before the rental ends.

Order and provisioning

Four choices define your device runbook

Your order only needs a model, node, billing period, and options. Actual availability is determined by the live console status; both models are offered in all four available nodes.

01 / MODEL

Choose fixed hardware

NUMACS M4 Core M4 with 16GB RAM and a 256GB SSD—ideal for maintaining a single project, everyday debugging, and lightweight automation. NUMACS M4 Plus M4 with 24GB RAM and a 512GB SSD—better for multitask builds, larger dependency caches, and parallel testing.

02 / REGION

Choose a connection node

Choose Singapore, Tokyo, Seoul, or Hong Kong. Prefer the node with a stable path and low round-trip latency from the primary operator's network; test again from the Runner's network before connecting CI.

03 / PERIOD

Choose a rental period

Rent by the day, week, month, or quarter. Cover environment recovery, the first build, fixes, and artifact export—do not estimate only by how long installation takes.

04 / OPTIONS

Check storage and parallel workload needs

Large asset libraries, multiple Xcode versions, simulator runtimes, and long-lived build caches can quickly consume space. For additional capacity, choose +1TB SSD, +2TB SSD, or Thunderbolt 5 expansion when ordering.

First secure login

Harden access before restoring the project

After receiving the device details, do not immediately import code and certificates. First rotate credentials, verify access paths, and check administrator permissions, then record the clean baseline.

  1. 01

    Change the initial credentials

    After first entering the macOS graphical interface, set a unique strong password immediately. Do not reuse passwords from the repository, email, or shared team systems, and never put credentials in chat records or automation scripts.

  2. 02

    Configure an SSH public key

    Generate a key pair locally for this device and add the public key to the authorized list. After verifying key-based login, disable unnecessary access methods and record who owns key rotation.

  3. 03

    Verify remote desktop access

    Check resolution, keyboard layout, clipboard policy, and idle disconnect behavior. Use remote desktop for graphical tools and SSH for scripts and diagnostics; verify both paths independently.

  4. 04

    Confirm administrator permissions

    Run one controlled administrator command to confirm that software installation and system settings work as expected. Do not bypass permission issues by disabling system security; first identify the command, file owner, and execution context.

Migration paths

Split the migration into three verifiable paths

Do not copy the entire local directory at once. Data, the toolchain, and CI fail for different reasons; migrating them separately enables quick rollback and helps identify whether the issue is with files, versions, or the execution environment.

SOURCE Local Mac
TARGET NUMACS Cloud Mac
PATH 01

Data migration

Migrate the repository, configuration inventory, and required assets first, then restore large caches as needed. Compare checksums or file counts, and avoid copying temporary directories, derived data, and outdated archives.

Validation result Repository commits match, asset checksums pass, and temporary caches were not migrated
PATH 02

Toolchain restoration

Reinstall Xcode, Homebrew, Ruby, Node.js, and the package managers from the version inventory. Lock files are the source of truth for recovery; caches only speed things up and cannot replace a reproducible installation process.

Validation result Command paths, version output, and project dependencies match the baseline
PATH 03

CI integration

Register a dedicated Runner and set the working directory, cache boundaries, concurrency limit, and failure-log retention. Run an unsigned test task first, then add archive and export steps incrementally.

Validation result The Runner schedules jobs, failures are reproducible, and artifacts are traceable

Development environment installation

Use the project baseline—not “latest”—as the target version

The most common issue on a new device is not a missing tool but version drift. Restore a combination that builds reliably, then test upgrades on a separate branch.

Development toolchain restoration order and acceptance commands
Layer Content to pin Recovery method Acceptance evidence
macOS The system major version and patch range validated by the project Record the current system first; do not cross major versions during the initial migration sw_vers
Xcode Xcode version, command-line tools path, and SDK Install the specified version and explicitly select the developer directory xcodebuild -version
Homebrew Brewfile, repository source, and key tool versions Reinstall from the inventory; do not copy the old cache directory brew bundle check
Ruby Interpreter version, Bundler version, and Gemfile.lock Restore using the project's version file, then install dependencies ruby -v
Node.js Runtime version, package manager version, and lock file Install from the version file and restore in frozen-lockfile mode node -v
Project dependencies CocoaPods, Swift Package, and JavaScript dependencies Restore in layers and retain separate logs for each failure Dependency resolution without implicit upgrades
Recommended practice

Save version output as the project baseline

After the first successful build, save the system, Xcode, Ruby, Node.js, package manager, and key dependency versions to the internal run record. During the next migration or troubleshooting session, compare the baseline before changing the environment.

sw_vers
xcodebuild -version
ruby -v
node -v
brew bundle check

Code and signing integration

Validate permissions with a test project before handling production archives

Validate code checkout, dependency restoration, Keychain access, and archive export separately. Even if the production project fails, you can quickly determine whether the issue involves the repository, dependencies, or signing permissions.

REPOSITORY

Clone and restore dependencies

Clone the repository with a dedicated SSH key and check submodule and private dependency access. Install dependencies in lockfile mode; do not update every dependency as part of the migration.

  • Confirm the default branch and target commit
  • Check access to submodules and artifact repositories
  • Save dependency resolution failure logs
SIGNING

Import signing assets

Import only sanitized signing assets needed for testing and restrict Keychain file permissions. Recovery codes, private keys, and complete payment credentials must never enter tickets, repositories, or shared logs.

  • Confirm that the provisioning profile matches the target identifier
  • Verify Keychain access in non-interactive tasks
  • Record certificate expiry and the rotation owner
ARCHIVE

Test archiving and export

Build, test, and archive the smallest test project first, then switch to the production project. A successful archive does not guarantee a successful export; save export logs and artifact checksum results separately.

  • Confirm the build target and Release configuration
  • Check the signing identity in the archive log
  • Verify that exported artifacts are readable and their checksums remain stable

CI Runner integration

Manage the Runner as a dedicated execution node

The priority for Runner integration is not simply being online: job directories must be cleanable, caches bounded, concurrent jobs isolated, and failure logs retained.

Integration parameters

Execution identity
Run jobs under a separate low-privilege account; review steps requiring administrator permissions separately.
Working directory
Use a fixed workspace root; do not share DerivedData, temporary keys, or undeclared caches between projects.
Concurrency limit
Start with a single-job baseline, then increase gradually based on memory, disk space, and build duration.
Cache policy
Set keys, capacity, and cleanup conditions for dependency caches; after cache invalidation, a full rebuild must still work.
Log retention
Retain failed stages, command exit codes, key tool versions, and artifact paths without recording sensitive values.

Recommended integration order

  1. 01

    Register a dedicated Runner and run only one unsigned environment-check task.

  2. 02

    Add dependency restoration and unit tests, confirming success after clearing the cache.

  3. 03

    Add the archive step and verify the scope of Keychain access in non-interactive sessions.

  4. 04

    Add artifact export, checksum, and upload, and record the complete job-duration baseline.

First-task acceptance

One successful run is not enough—leave a reusable baseline

Acceptance should cover the complete path from code checkout to artifact export, recording duration, available resources, and retry results. This record becomes the comparison baseline when upgrading the toolchain or switching projects.

  1. Pull the code

    Clone the target commit into an empty workspace, verify private dependencies, submodules, and repository permissions, and do not rely on leftovers from an old directory.

    Record the commit
  2. Install dependencies

    Restore all dependencies from the lock file, record cold- and warm-cache durations, and confirm that no versions were upgraded implicitly.

    Save the version inventory
  3. Run tests

    Run unit tests and required automation tests, recording failed cases, retry counts, and log locations.

    Retain the test report
  4. Create an archive

    Check the build configuration, signing identity, and archive location, and confirm that non-interactive and graphical-interface results match.

    Save the archive log
  5. Export artifacts

    Verify that exported files are readable, record file sizes and checksums, and copy required artifacts to a separate backup location.

    Verify the checksum
  6. Record the resource baseline

    Save peak CPU usage, memory pressure, disk space before and after the build, total duration, and cache size for future anomaly comparisons.

    Establish the run baseline

Routine operations

Keep the device recoverable, not merely continuously accessible

NUMACS physical nodes operate normally 365 days a year. You still need to continuously manage caches, disk space, backups, and access credentials so project state does not exist on only one machine.

WEEKLY

Check disk space and caches

Review the workspace, DerivedData, simulator runtimes, package manager caches, and historical archives. Clean by source first; do not use full-disk deletion commands with an unclear scope.

AFTER CHANGE

Update the environment baseline

After changing macOS, Xcode, Ruby, Node.js, or key dependencies, rerun tests and archiving, and record duration and failure differences before and after the change.

REGULAR

Rotate access credentials

Rotate SSH keys, repository access tokens, and device passwords regularly. Revoke access immediately when a member leaves the project or permissions change; never share personal keys.

BEFORE EXIT

Complete data migration out

Before the rental ends, export code changes, build artifacts, the environment inventory, CI configuration, and required logs. Checksum the exported files and verify them by opening them elsewhere.

Before the rental ends

The final check is more than “the files were copied”

  • All unpushed code is in a controlled repository
  • Required archives and exported artifacts have been verified in a separate location
  • Environment versions, installation scripts, and CI configuration are saved
  • Temporary credentials, private-key copies, and sensitive logs have been removed

Ready to run your first device runbook?

Choose a model, node, billing period, and options, then manage the order and device from one console. Payments are limited to USDT-TRC20 and Visa / Mastercard / Amex (via Stripe); all charges are settled in USD.