CDNMac M4
Mac mini M4 for iOS builds, macOS development and testing, and continuous integration.
Choose from six locations
Availability, delivery times, and add-on options are based on the console’s latest response.
Choose the CDNMac M4 and a location, then check out and retrieve your system access details. Secure the connection, verify your Xcode environment, run an Archive, and move the build artifacts to controlled storage.
Each step has clear inputs and outputs. Don’t add project secrets until access details are secured, or run a production release before checking the development environment.
Choose based on task duration, your team’s location, repository location, and dependency download routes. A single latency test is only a guide; it can’t replace a real build test.
Output: draft order configurationDouble-check CDNMac M4, billing period, location, SSD upgrade, and the number of Thunderbolt 5 devices to connect. The final amount is the one shown on the checkout page.
Output: order IDCheck device status, system access details, and management access in the console. Availability and delivery details are based on the console’s latest response.
Output: verifiable access detailsPrefer SSH key authentication, restrict permitted sources, use separate credentials for CLI and graphical sessions, and assign an owner for credential rotation.
Output: controlled connection pathCheck that macOS, Xcode, Command Line Tools, Git, certificates, and provisioning profiles meet project requirements before restoring dependencies.
Output: environment check recordRun an Archive from a test repository, check the signing results, logs, and exported files, then copy required artifacts to team-controlled storage.
Output: first traceable buildUse this checklist to avoid configuration changes and back-and-forth after ordering. The project owner should provide a clear answer for every item.
Confirm whether you need iOS automated builds, macOS development and testing, cross-platform mobile builds, or Apple Silicon model compatibility testing.
Choose from Singapore, Japan (Tokyo), South Korea (Seoul), Hong Kong, the US East Coast, and the US West Coast. Record why you chose it.
Daily billing suits short tests, weekly billing suits short sprints, and monthly or quarterly billing suits ongoing builds. Don’t compare prices in isolation.
The base configuration includes a 256GB SSD. Estimate peak usage for source code, dependency caches, DerivedData, Archives, and logs before choosing an SSD upgrade.
Consider Thunderbolt 5 connections only if your workflow requires multiple devices to work in parallel. Confirm the quantity and responsibilities for each device.
Prepare a least-privilege method for repository access. Don’t reuse a personal long-lived token or store private keys, tokens, or certificate passwords in a repository.
Decide where to send Archives, export packages, symbol files, and build logs, and schedule data export before the rental term ends.
One configuration is available: a dedicated physical machine. Each order includes one cloud Mac with resources that aren’t shared with other orders. It’s not a virtual machine.
Mac mini M4 for iOS builds, macOS development and testing, and continuous integration.
Availability, delivery times, and add-on options are based on the console’s latest response.
For ongoing development that needs more room for dependency caches, Archives, and build logs.
For larger dependency directories, datasets, model files, or longer-term artifact storage.
Billed per device. For approved parallel device workflows; does not change the base machine specifications.
All prices and orders are charged in US dollars (USD). Available gateways are determined by the backend response.
Before sending payment, verify the order amount, network, and recipient details. Keep the transaction ID for order matching or billing queries.
Currency: USDCard payments are processed by Stripe. Check your billing details and order total before authorizing payment. Never share full payment credentials in a support request.
Gateway: StripeConfirm the model, term, location, SSD upgrade, number of connected devices, and USD total match the configuration approved by the project owner.
Once your order is complete, check the device status, system access details, and management access in the console. On your first connection, verify your identity and inspect the environment; don’t import production keys yet.
You can use both connection methods, but manage their credentials, permissions, and use cases separately. Don’t embed long-lived keys in scripts or build logs.
For Git operations, dependency restoration, scripts, log collection, Archives, and self-hosted runners. Use dedicated keys where possible and grant each automation task only the permissions it needs.
For your initial Xcode check, GUI settings, development tools that require a graphical interface, and Archive verification. A graphical session is no reason to share credentials.
Don’t just check that “Xcode opens.” Record versions, paths, signing asset status, and free disk space so you can trace failures to specific changes.
| Check | How to check | Pass criteria | What to do if it fails |
|---|---|---|---|
| macOS | Record the OS version and available disk space | Meets project toolchain requirements; enough space for dependencies, caches, and Archives | Remove unrelated caches and reassess SSD capacity |
| Xcode | Check the required major version and selected path | Project opens; target SDK and build settings are available | Select the correct version and resolve the project again |
| Command Line Tools | xcode-select -p |
Path points to the intended Xcode toolchain | Correct the selected path, then check the command version |
| Git | git --version and test least-privilege repository access |
Can read the test repository without exposing long-lived credentials | Check key permissions, source restrictions, and repository access |
| Certificates and provisioning profiles | Check names, purpose, validity, and project identifiers | Match the test target; no unrelated assets imported | Ask the project owner to provide the correct assets |
| Dependency lockfile | Confirm the lockfile is committed and matches the target branch | Dependency restoration is repeatable, with no implicit upgrades | Restore again from a commit that matches the lockfile |
sw_vers
xcodebuild -version
xcode-select -p
git --version
df -h
The goal of your first task isn’t to ship a release. It’s to verify a complete workflow for code access, dependency restoration, Archive, signing checks, log retention, and artifact export.
Use least-privilege credentials to clone a known buildable commit. Record the commit hash and target branch.
git clone <repository-url>
Restore dependencies from the project lockfile. If you need CocoaPods, Flutter, or another tool, record its version first.
Keep the lockfile in sync with the target commit
Specify the workspace, scheme, configuration, and archivePath to avoid relying on implicit GUI defaults.
xcodebuild archive -workspace App.xcworkspace -scheme App -archivePath build/App.xcarchive
Check that the bundle identifier, certificates, provisioning profiles, and export settings match the test task. Don’t ignore signing warnings.
Record signing check results and the stage where a failure occurred
Keep the start and end times, commit hash, tool versions, and failed steps. Before sharing logs, remove tokens, sensitive names in file paths, and certificate passwords.
Logs should be traceable to the order, location, and commit
Copy the Archive, exported files, and any required symbol files to team-controlled storage. Verify file integrity and access permissions.
Clean up the workspace after exporting
After manual validation, register the dedicated physical machine as a self-hosted runner. Isolate automation credentials, working directories, and cleanup policies by repository.
Give the runner a recognizable name and record its location, project scope, and owner. Start with a read-only test job before enabling build permissions.
Record: name, location, repository, ownerGrant tokens only the repository and operation permissions required for the current task. Never put tokens in source code, cache directories, build logs, or downloadable artifacts.
Principle: one task, one set of least-privilege permissionsUse separate directories for different repositories. Define which caches can be reused, which artifacts must be exported, and how to clean up after successful, failed, or canceled jobs.
Policy: isolate repositories, tier caches, recover from failuresCommit hash, tool versions, task start and end times, dependency restoration results, Archive path, and artifact verification details.
Private keys, access tokens, certificate passwords, full payment credentials, or sensitive project content unrelated to troubleshooting.
Export required artifacts, revoke automation tokens, remove repository credentials, and ensure project materials are cleared from working directories and caches.
Before ordering, choose a term, one of six locations, and any add-ons. After ordering, secure access before verifying Xcode and your first Archive.