What you can build
Four workloads, one dedicated Mac.
Rent by the day. Use it for the task at hand.
With macOS administrator access, keep using your own build scripts. Check tool versions, signing assets, and cache locations, then move your existing jobs to the cloud Mac—no need to redesign your pipeline just to change machines.
Automated builds
xcodebuild · fastlane · gym
Have your runner pick up commits and run archive, signing, export, and TestFlight upload in sequence. Keep failure logs and build artifacts in CI instead of clicking through each run in a remote desktop.
Validate signing and export with a single job first, then set a concurrency limit. Dedicated resources don't mean unlimited concurrency: choose how many archives to run at once based on your project's peak memory use.
bundle exec fastlane ios release
Test on physical devices
devicectl · Xcode Devices
Physical nodes support USB peripherals and Xcode device debugging workflows. Connecting a device requires a physical connection; your nearby phone won't be automatically mapped to the remote machine. Confirm connection arrangements through a support ticket first.
After connecting a device, check that it's detected, then verify the OS version, signing setup, and test target. Simulator regression testing and testing on a physical device are separate workflows and can't replace each other.
xcrun devicectl list devices
Run multiple Xcode versions side by side
xcodes · simctl · version testing
Keep separate Xcode versions for production builds and compatibility testing. Use xcodes to check installed versions, and pin the developer directory with an environment variable in each build job so other tasks can't switch versions mid-pipeline.
Check Xcode and macOS compatibility requirements first. Simulator runtimes, DerivedData, and archives all use SSD space, so leave room for downloads and extraction before installing another version.
xcodes installed
xcodebuild -version
AI inference experiments
MLX · unified memory
Evaluate quantized models on the Host M4 Pro with 64GB of unified memory. Record model size, context length, and peak memory use before comparing throughput; don't just check whether the model file fits on disk.
Plan a week for an experiment, save your scripts, dependencies, and results, then end the rental. If you run inference alongside builds, allocate resources explicitly to keep inference jobs from consuming build memory.
python -m pip show mlx mlx-lm