No Mac, no iOS build
Apple's build tools need macOS. A developer on Windows or Linux cannot compile or sign an iOS build on their own machine.
For Windows and Linux developers
Capgo Build compiles and signs your Capacitor iOS app on cloud Mac machines. Run one CLI command from Windows, Linux, or CI, and the signed build uploads to App Store Connect for TestFlight.
14-day unlimited free trial. No credit card required
npx @capgo/cli@latest build init --platform ios
npx @capgo/cli@latest build request --platform ios
# signed build runs on an ephemeral Mac runner
# logs stream back to your terminal
Cloud Mac machines
iOS builds run on dedicated Mac mini M4 machines. You start them from the computer you already use.
Signed and uploaded
The build is signed with your certificate and uploaded to App Store Connect, ready for TestFlight.
The Problem
Apple's build tools need macOS. A developer on Windows or Linux cannot compile or sign an iOS build on their own machine.
Certificates and profiles often sit on one person's Mac. When that person is away or a profile expires, the release waits.
A rented macOS runner still needs Xcode updates, Fastlane lanes, signing secrets, and debugging when Apple changes something.
How it works
You need a Capacitor app, a Capgo account, and an Apple Developer account. Every command below is from the Capgo CLI docs.
The onboarding reads your Capacitor project, creates the distribution certificate and provisioning profile, and saves them on your machine.
npx @capgo/cli@latest build init --platform ios
iOS build guide
If your team already has a certificate and profile, save them with your App Store Connect API key. They stay in a local credentials file.
npx @capgo/cli@latest build credentials save --platform ios \
--apple-team-id YOUR_TEAM_ID \
--apple-key ./AuthKey_XXXXX.p8 \
--apple-key-id YOUR_KEY_ID \
--apple-issuer-id YOUR_ISSUER_ID \
--certificate ./certificate.p12 \
--ios-provisioning-profile ./profile.mobileprovision
Managing credentials
Sync your web build into the iOS project, then request the build. Logs stream to your terminal, and the signed build uploads to App Store Connect for TestFlight.
npx cap sync ios
npx @capgo/cli@latest build request com.example.app --platform ios
First build guide
Export your saved credentials as CI secrets with build credentials manage, set CAPGO_TOKEN, and run build request in GitHub Actions, GitLab CI, or any runner.
npx @capgo/cli@latest build credentials manage
# in your CI job
npx @capgo/cli@latest build request com.example.app --platform ios
GitHub Actions setup
The Solution
Native builds run in the cloud when native code changes. Web changes keep shipping as live updates between store releases.
iOS builds run on dedicated Mac mini M4 machines with Xcode installed. Your Windows or Linux laptop, or a CI runner, sends the request from the terminal.
Capgo Build overviewbuild init creates the distribution certificate and provisioning profile for you. It uses an App Store Connect API key, which you create in your browser when you are on Windows or Linux.
iOS build guideSave credentials once, then run build request from a terminal, GitHub Actions, GitLab CI, or any other pipeline.
build command referenceUse Capgo Build when plugins, permissions, icons, or the Capacitor version change. Ship JavaScript, CSS, and asset changes as live updates after users install the store build.
Live update or native build?Trust model
Credentials stay on your machine or in your CI secrets. Capgo only holds them while a build runs.
The CLI uploads the native platform folder and native dependencies. Your full repository stays on your machine.
Build logs stream live while the build runs and are not stored on Capgo servers.
Certificates and profiles are used in memory during the build and deleted when it finishes. Each build runs in an isolated environment that is destroyed afterwards.
Apps built with Capacitor
School, transport, and support apps still need signed mobile releases when the team is mostly web, support, or operations. Hosted build workflows remove the single-machine bottleneck while keeping signing steps repeatable.
School communications app where non-native teams still need reliable signed releases.
Transport booking app where release handoff should not depend on one developer machine.
Support utility where operations teams need repeatable mobile build records.
Customer proof
Design, radius 5
“Capgo Build helped us simplify our Capacitor app release process. We can build and ship iOS and Android apps from one clear workflow.”
Principal Mobile Platform Engineer, Tellent
“We originally discovered Capgo through its plugins, and that turned out to be a great entry point into a much more efficient release process for our team.”
FAQ
What Windows and Linux developers ask before their first cloud iOS build.
Not to compile, sign, or upload. Builds run on Capgo's Mac mini M4 machines. You still need an Apple Developer account. On Windows or Linux, you create the App Store Connect API key in your browser, then the CLI handles certificates and profiles.
iOS build guideA typical native build takes 2–3 minutes. Logs stream to your terminal while it runs, so you see errors as they happen.
First build guideYes. With an App Store Connect API key in your credentials, the signed build uploads to App Store Connect, where you test it in TestFlight and submit it for App Store review. Add --output-upload if you also want a download link for the IPA.
Build configurationOn your machine, in ~/.capgo-credentials/credentials.json by default, or in your CI secrets. They are sent to Capgo only for the duration of a build and deleted afterwards.
Managing credentialsNo. Plugin, permission, icon, and Capacitor version changes need a new native build. JavaScript, HTML, CSS, and asset changes can ship as live updates to users who already have the store build.
Live update or native build?Run your first signed iOS build during the 14-day free trial, then add Android, CI, and live updates when you need them.
human support from Martin
14-day unlimited free trial. No credit card required
Enterprise needs? Talk to our team