Account & billing
Check the email address on the order, rental term, and billing status. Before renewing, confirm the instance and billing period. After payment, rely on the result shown in the console.
Troubleshoot connectivity, toolchains, signing, and billing. Check the commands and limitations below first; if the issue persists, share your node details and redacted logs with support.
For issues with a rented node, submit a ticket from the account used for the order so we can check the instance and billing details.
Choose a starting point based on where the failure occurs. You don't need to change the entire pipeline first—check whether a minimal reproducible job passes.
Check the email address on the order, rental term, and billing status. Before renewing, confirm the instance and billing period. After payment, rely on the result shown in the console.
First identify whether SSH is unreachable, authentication is failing, or the graphical interface won't connect. Note the exact error, and never include your login password in a ticket.
Check the active developer directory first, then verify the certificate's private key, provisioning profile, and target. Test toolchain and signing issues separately.
Check the runner's execution user, labels, and working directory. Once a manual job passes, add automated triggers and credential injection.
Separate source code, caches, and secrets. Back up essential data outside the node before reinstalling, and verify that the backup can be restored.
The paths, schemes, and project names below are command examples. Replace them with your own project details before running the commands. Test operations involving permissions or certificates with a single job first.
Check the current developer directory and version, and make sure the target Xcode version is installed. The example below switches the system-wide default to /Applications/Xcode.app. To use another version, replace it with the actual application path.
xcode-select -p
xcodebuild -version
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
xcodebuild -version
xcrun --find swift
A system-wide switch affects other jobs launched afterward. If different pipelines need different versions, set DEVELOPER_DIRin each job's environment instead of having jobs repeatedly change the global directory.
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild -list -workspace MyApp.xcworkspace
After switching, list the schemes and run an Archive. If platform components are missing or first-run setup is required, initialize the toolchain in the macOS graphical interface before resuming automation.
Prepare a certificate export that includes the private key, its password, and a provisioning profile that matches the app identifier and distribution method. A certificate without its corresponding private key usually can't sign code.
security find-identity -v -p codesigning
The CI execution user's keychain environment may differ from that of the remote desktop user. For unattended builds, unlock the keychain in the job and configure the required access permissions. Read passwords from protected CI variables; don't store them in your repository, command output, or support ticket.
If a manual build succeeds but CI fails, first compare the execution user and keychain state. For signing errors, provide only the certificate type, validity period, and redacted error lines. Never upload private keys or certificate passwords.
Don't treat reinstallation as a way to preserve files. It may erase the system and working directories. Before submitting a request, confirm the scope of work through a console ticket and back up data outside the node. At the end of the rental term, the node's disks are erased, so it can't be used to recover data afterward.
Back up at least any unpushed source code, build configuration, essential artifacts, provisioning profiles, and protected key material. Caches such as DerivedData and dependency downloads can be regenerated, but they may slow the first build after restoration.
A completed backup isn't necessarily restorable. Extract it to a separate directory, check the file count and key settings, and make sure you can retrieve the latest artifact before stopping jobs on the original node. After reinstallation, reinstall the toolchain, restore the signing environment, and register the runner again.
Sign in to the account used for the order. In the console, check the instance, expiry date, and available renewal periods, then pay the invoice shown on the page. Use the live result in the console to confirm the renewal and new rental term—not a payment screenshot or the page shown before you closed your browser.
We accept USDT-TRC20 and Visa, Mastercard, and Amex via Stripe. All payments are charged in USD; actual payment options depend on the gateways returned by the backend. Before an on-chain payment, verify the network, amount, and recipient details. After a card payment, return to the console and check the invoice.
If the invoice and instance status don't match, submit the order number, invoice number, and transaction reference. Don't make another payment to try to fix the status, and never send your full card number in a ticket. Back up artifacts and essential files before expiry; renewal isn't a data backup method.
First check the node address, port, username, and instance status in the console. Distinguish a connection timeout from an authentication failure: for a timeout, check network reachability; for an authentication failure, check the username, password, or key. SSH and VNC have separate connection details—don't mix up their ports.
ssh -v -p PORT USER@HOST
Replace PORT,USER, andHOST with the actual details. If the logs show a changed host fingerprint, confirm the reason using trusted console information or a support ticket. Don't disable host identity verification.
Use remote desktop to check the macOS graphical interface, Keychain, and Xcode settings; use SSH for command-line work and CI. Before sharing logs, remove sensitive information from usernames, addresses, and local paths. Keep only the error type and sequence of events.
Check four things: whether the runner is online, whether the job's labels match, whether the project is allowed to use the runner, and whether the process runs as the correct user. Successful registration only establishes an association—it doesn't mean every job will be assigned to that node.
Start with a test job that only prints toolchain information. Confirm the execution user, directory, and Xcode version before adding dependency installation and signing steps.
whoami
pwd
xcode-select -p
xcodebuild -version
security find-identity -v -p codesigning
Include the macOS version, chip architecture, and purpose in the labels, then select them explicitly in the project settings. For the initial setup, limit execution to one job. Check that caches, keychains, and artifact directories don't overlap before increasing concurrency. Treat registration tokens as credentials—never include them in tickets or build logs.
First confirm that you're using the correct workspace, shared scheme, and Release configuration. Archive and simulator builds follow different paths; check signing, architecture, and export settings for the device target separately.
xcodebuild -list -workspace MyApp.xcworkspace
xcodebuild archive \
-workspace MyApp.xcworkspace \
-scheme MyApp \
-configuration Release \
-destination 'generic/platform=iOS' \
-archivePath build/MyApp.xcarchive
Keep the first substantive error and its context instead of just the final failure message. Check dependency installation, script phases, signing, and disk writes separately. After Archive succeeds, validate the exported artifact too; a completed archive doesn't mean a distributable package has been created.
First check disk usage and job status, then distinguish rebuildable caches from artifacts you need to keep. Don't delete a directory that a running job depends on, or treat source code, signing materials, or an Archive that hasn't been uploaded as cache.
df -h
du -sh ~/Library/Developer/Xcode/DerivedData
du -sh ~/Library/Developer/Xcode/Archives
Set separate retention rules for caches and artifacts. The first compile and dependency resolution after cleanup may take longer, so treat that build as a cold-start test. If you regularly run short on space, measure project and artifact growth before choosing a more suitable machine or SSD add-on.
Eight common terms for resources, connectivity, builds, and signing. Name the specific component when describing an issue to reduce back-and-forth.
Nodes run 365 days a year. Check service availability separately from project build results: expired certificates, project configuration errors, and user actions don't by themselves indicate that a node was unavailable.
Monthly uptime commitment
99.9%
If monthly availability falls below the commitment, rental-time credits are calculated based on the duration below the target. To request a review, provide the instance, affected period, and connection records. Support will verify server-side records and applicable coverage.
This page isn't connected to node monitoring, so it doesn't show daily status or present the commitment as measured uptime. Check actual incident records through a console ticket.
Record when the issue began and was resolved, including the time zone. Keep connection errors, retry results, and the affected instance details. Exclusions such as force majeure and user actions are subject to the service terms. Don't submit only a screenshot of a failed pipeline, and don't estimate node downtime from a local network outage.
If you've rented a node, submit a ticket through the console. For presales, business inquiries, or security reports, email support@xcoderent.com. These are the two channels for all support requests.
Include the order number, node location, and machine model. Nodes are available in Singapore, Tokyo, Seoul, Hong Kong, the eastern United States, and the western United States. Specify XR Build 16, XR Build 24, or XR Build Pro 64 rather than just “that build machine.”
State which step failed, when it started, whether it's ongoing, and whether you recently switched Xcode, changed signing settings, or updated the runner. Include the time zone so records from different nodes can be compared accurately.
Provide redacted commands, the first substantive error, and the checks you've already tried. Never send private keys, login passwords, registration tokens, or complete payment card details. Remove sensitive paths from logs first.
Distinguish between one project failing, all jobs failing, and the node being unreachable. If some jobs still run, say which pass and which fail so support can determine whether the issue is with the toolchain, project, or instance.
Check ticket status, requests for more information, and support replies in the console. We don't promise an unconfirmed fixed response time in minutes on this page. If you have a delivery deadline or need an estimated recovery time, note it in your ticket so support can assess the issue. Submitting the same issue again won't add useful troubleshooting details; update the original ticket instead.
Tell us about your build queue, expected usage period, or specific error. Visit the contact page for guidance on preparing an inquiry. For an existing order, keep the full troubleshooting history in a console ticket.