Build an iOS .ipa without a Mac, straight from GitHub (2026)
.ipa from a Linux or Windows machine. Corenna wires the whole pipeline up for you.What you need before you start
- Apple Developer Program membership ($99/year). Apple does not waive this — see the FAQ.
- An iOS Distribution certificate exported as
.p12with a password. - An App Store provisioning profile (
.mobileprovision) matching your bundle ID. - A GitHub repo with a Capacitor, Flutter, or React Native project (Expo works after
npx expo prebuild, with theios/folder committed). - Deep dive: iOS code signing explained.
How the build works
- GitHub spins up a macOS-14 runner with Xcode preinstalled.
- Your
.p12is imported into a temporary keychain. - The provisioning profile is copied to
~/Library/MobileDevice/Provisioning Profiles/. - Fastlane
gymarchives the app and exports a signed.ipa. - The artifact is uploaded back to GitHub (or pushed to TestFlight with
pilot).
Manual setup vs Corenna
Manual: encode .p12 and profile as base64, add them plus P12_PASSWORD, APPLE_TEAM_ID, and KEYCHAIN_PASSWORD to GitHub Secrets, then write a Fastfile with match or cert + sigh.
Corenna: upload the .p12 and .mobileprovision once. We validate the cert, extract the team ID, push everything as sealed-box secrets, and generate the workflow. You click Build iOS and download the .ipa.
Cost note: GitHub Actions macOS minutes
On a private repo, once your GitHub plan's included minutes are used, macOS runner minutes cost $0.062 each, against $0.006 on Linux (GitHub's 2026 prices). A typical iOS build is 8–15 minutes. Public repos build free on GitHub's standard runners. Corenna doesn't charge per build — see pricing.
Shipping to TestFlight
With the .ipa in hand, upload via Transporter, Xcode Organizer, or programmatically with Fastlane pilot upload. Allow 5–15 minutes for Apple's processing pipeline before the build appears in App Store Connect.