From device delivery to archive artifacts

A clear path to your first iOS cloud build

MiniRents provides dedicated physical machines with resources reserved for you—not shared with other tenants and not virtual machines. This guide starts with repository access, SSH public keys, and signing materials, then takes you through region selection, remote access, Xcode checks, archive export, and post-task cleanup.

2 models available 5 regions available 4 rental terms
First-build path READY
01
Prepare access and materialsRepository, SSH, signing materials
02
Choose a device and regionConfiguration, location, term
03
Connect and verify the environmentSSH, Xcode, storage
04
Archive, deliver, clean upArtifact verification and credential removal
Step 1
Before you begin

Get access and build materials ready first

Searching for repository access or signing files after delivery can leave your first build stuck halfway through. Complete these checks before ordering, and use narrowly scoped, revocable credentials for automated tasks.

Repository access

Confirm that the target branch is readable and that submodules and private dependencies have separate authorization. Automation tokens should expose only the required repositories and operations; never reuse long-lived personal credentials.

  • Verify access to the main repository and submodules
  • Record dependency sources and lockfile versions
  • Prepare a revocable short-lived repository token

Development and signing materials

Organize the certificates, provisioning profiles, team identifiers, and export configuration required by the project. Inject sensitive materials through controlled variables or encrypted files instead of writing them directly into the repository.

  • Verify certificate and provisioning profile validity
  • Prepare the ExportOptions configuration
  • Define what must be deleted when the build ends

SSH public key

Generate a separate key pair for the cloud device. Keep the private key on a trusted endpoint and submit only the public key. Set strict permissions on key files and keep a record for verifying the host fingerprint.

  • Use a separate key for each device purpose
  • Set the private key file to owner-read-only permissions
  • Never send private keys through tickets or email
Light and standard builds

MiniRents M4

M4 · 16GB · 256GB

day$21.5 week$58.1 month$107.5 quarter$292.4

Ideal for single-project signing, standard Xcode archives, dependency validation, and low-concurrency automation. Start with this tier to measure real build times and disk usage when validating a pipeline.

Choose MiniRents M4
High concurrency and heavy workloads

MiniRents M4 Pro

M4 Pro · 64GB · 2TB

day$59.6 week$160.8 month$297.8 quarter$810

Built for multiple build queues, large dependency graphs, parallel testing, and Apple Silicon AI experiments. More memory and local storage reduce task contention and frequent cleanup.

Choose MiniRents M4 Pro
Choosing the right tier:Both device tiers are dedicated physical machines. The main differences affect concurrency, dependency-cache capacity, and headroom for large projects—not the remote-access or console-management workflow. All prices are charged in USD.
Step 2
Choose a region and rental term

Choose based on team location, repository location, and task duration

Available regions are Singapore, Japan (Tokyo), South Korea (Seoul), Hong Kong, and the US East. Both models are available in all five regions; real-time availability is returned by the console.

Reference guide to the five regions
Region Teams to consider first Check when choosing
Singapore Southeast Asian collaboration and regional repositories Team connection routes and dependency-source locations
Japan (Tokyo) Japan and East Asian development teams Repository and artifact-recipient locations
South Korea (Seoul) Korean and nearby regional teams Runner callbacks and log-transfer routes
Hong Kong Cross-region collaboration across South China and Southeast Asia Remote desktop experience and dependency-download routes
US East Eastern North American and transatlantic teams Repository, artifact registry, and pipeline-control locations

How to choose a rental term

Daily

Best for verifying that a project can install dependencies, sign, and archive successfully on Apple Silicon. Record the full build time first, then decide whether to extend the term.

Weekly

Best for release sprints, concentrated script migrations, or short-term testing. Allow time for retries and rebuilding dependency caches.

Monthly

Best for continuous development, a fixed self-hosted Runner, and regular releases. Manage environment setup, build, and cleanup scripts in the repository.

Quarterly

Best for stable build queues and long-term team use. Establish processes for revoking member access, rotating credentials, and cleaning disks.

Step 3
Order and device details

Configure your order and retrieve connection details in the console

Choose the model, term, and region to place your order. After delivery, read the device status, connection address, SSH username, and host fingerprint from the console. Do not copy connection details from chat history or forwarded screenshots.

01

Configure the order

Confirm MiniRents M4 or MiniRents M4 Pro, choose a daily, weekly, monthly, or quarterly term, and select the target region. Before submitting, review additional storage and Thunderbolt 5 expansion options.

02

Complete payment in USD

Payment supports only USDT-TRC20 and Visa / Mastercard / Amex (via Stripe), with all charges settled in USD. Actual gateway availability is determined by the backend response.

03

Check device status

When delivery information appears, verify the model, region, rental term, and device identifier. Record the host fingerprint before connecting; use the console record for all subsequent verification.

04

Manage your term and support requests

Manage renewals, device status, billing, and tickets in the console. For a technical ticket, include the device identifier, region, incident time range, and redacted logs.

Step 4
First connection

Verify the host fingerprint before opening an SSH session

During the first connection, your terminal displays the remote host fingerprint. Compare it character by character with the console record and accept it only after confirming a match. If it differs, stop connecting and submit a ticket—do not bypass the check.

Check connection details

Confirm that the device identifier, region, host address, SSH username, and fingerprint all belong to the same device. Do not continue based only on a similar address.

Open an SSH session

Connect with the designated private key, then run checks for the architecture, system version, and current user. Type exit when finished to avoid leaving an unattended session.

Use VNC when you need a graphical interface

Enable VNC remote desktop according to the support guide, then start a session from a trusted device. Disconnect when finished and never save connection credentials on a shared terminal.

View the connection and VNC guide
Step 5
Command execution example

A verifiable first-build terminal workflow

The output below is redacted and illustrates command order only. It contains no real addresses, fingerprints, repository paths, or signing materials. Replace the placeholders with the corresponding values from your console and project before running it.

builder — zsh — 120×34 SSH
$ chmod 600 ~/.ssh/minirent_ed25519
$ ssh -i ~/.ssh/minirent_ed25519 builder@203.0.113.24
The authenticity of host cannot be established.
ED25519 key fingerprint is SHA256:[REDACTED]
Are you sure you want to continue connecting? yes

$ uname -m
arm64
$ xcodebuild -version
Xcode [SELECTED_VERSION]
Build version [SELECTED_BUILD]

$ git clone [REDACTED_REPOSITORY] app
$ cd app
$ xcodebuild -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  -archivePath build/App.xcarchive archive
** ARCHIVE SUCCEEDED **

$ bundle exec fastlane ios build
[fastlane] Loading controlled environment variables
[fastlane] Archive verified
[fastlane] Output saved to ./artifacts
[fastlane] Finished successfully
Do not copy sensitive values:Read the host address, fingerprint, repository address, certificate path, and environment-variable names from your console and project configuration. Before using logs in a ticket, remove tokens, key contents, signing-material paths, and personal information.
Step 6
Configure the build environment

Complete five checks before fetching all dependencies

The goal of environment checks is not merely to see commands run. Confirm that the architecture, Xcode, command-line tools, dependency versions, and available disk space meet the project requirements. Writing results to the build log can greatly reduce troubleshooting time.

01

Apple Silicon architecture

uname -m

Expected output: arm64. Also check whether dependencies include binaries that support only other architectures, so compatibility issues do not surface during archiving.

02

Xcode version

xcodebuild -version

Compare the output with the project requirements, pipeline image records, and team conventions. After switching versions, check again where the command-line tools actually point.

03

Command-line tools path

xcode-select -p

Confirm that the path belongs to the currently selected Xcode. Do not assume a fixed path in scripts; print the actual result at the start of each task.

04

Dependency manager

bundle exec fastlane --version

Prefer the versions pinned by the lockfile for Bundler, fastlane, and project dependency tools to reduce differences between local and cloud results.

05

Available storage

df -h .

Estimate total usage for the repository, dependency cache, DerivedData, archive, and exported artifacts. When space is low, clear rebuildable caches first; do not accidentally delete signing materials or deliverables.

PASS

Record a baseline

mkdir -p build-logs

Save an environment summary without sensitive values, the start time, commit version, and tool versions. If a failure occurs later, you can determine whether it came from a code change or an environment change.

Step 7
Complete your first archive

Connect fetching, injection, building, and artifact verification into one loop

Make your first archive reproducible. Do more than confirm a successful exit status: check the signing result, archive contents, exported artifacts, and logs against the target commit.

01

Pin the code version

After fetching the repository, record the commit hash, initialize submodules, and install dependencies from the lockfile. Do not switch branches during the build.

02

Inject controlled variables

Inject repository tokens, signing parameters, and environment configuration before the task runs. Logs should show only whether a variable exists, never its contents.

03

Run the archive

Specify the workspace or project, scheme, configuration, and archivePath so the command behaves consistently in interactive sessions and pipelines.

04

Check the signing result

Confirm that the archive uses the expected team, certificate, and provisioning profile. If anything does not match, stop the export instead of masking configuration problems with manual changes.

05

Verify and download artifacts

Record the artifact name, size, commit version, and checksum, then download it through a controlled path. Proceed to cleanup only after confirming that the local copy is complete.

Archive completion criteria

Your first build is complete only when all four results are true

  • The command succeeds and the logs contain no ignored signing errors
  • The archive matches the expected commit, scheme, and build configuration
  • The exported artifact is readable, with its size and checksum recorded
  • Logs are redacted and archived with the artifact under the task ID
Step 8
Delivery and cleanup

Remove temporary access as soon as the artifact is confirmed

Cleanup is not optional. At the end of every task, delete temporary credentials, confirm artifact delivery, clear rebuildable caches, and check device status. Use the same process for long-term devices.

Post-task cleanup checklist

  • Revoke short-lived repository tokens and temporary authorization
  • Delete imported signing materials and temporary environment files
  • Clear unused DerivedData and dependency caches
  • Confirm that the archive artifact was downloaded securely and verified
  • Exit SSH and VNC sessions and check device status

Submit these details if the issue remains unresolved

  • Device identifier, model, and region
  • Incident time range and corresponding commit version
  • Failed command, exit status, and minimal reproduction steps
  • Logs with tokens, keys, and personal information removed
  • Troubleshooting steps already attempted and their results
Log in to the console and submit a ticket
Support channels

For device-related issues, submit a console ticket first so it can be linked to your device and order. If you cannot log in, email support@minirents.com. Do not include passwords, private keys, or unredacted logs in the email.

Continue to the troubleshooting guide
Ready to start your first build

Choose your model and region, then connect to the device

Configure the order first, then retrieve the actual connection details from the console. If the device has already been delivered, log in to verify the host fingerprint and begin the environment checks.