Documentation
Apple App Store & TestFlight
Create the app in App Store Connect, make an API key, and let CapWrap create the signing certificate.
iPhone builds require an Apple Developer Program membership and an app record in App Store Connect. CapWrap does not sign you up for Apple and does not create that app record yet.
You do not need a Mac. Signing is created from the API key. Builds run on GitHub’s Mac runners.
1. Create the app on Apple’s website
- Open Apps in App Store Connect.
- New app → iOS. Bundle ID must exactly match the Capacitor App ID (Settings shows it, e.g.
app.yourbrand.mobile). - If the bundle ID is missing, create it under Certificates, Identifiers & Profiles → Identifiers.
- Add at least one internal tester (yourself) or a TestFlight group. A successful upload with zero testers looks like “nothing happened.”
2. Create an App Store Connect API key
This is a password made for tools.
- Open Users and Access → Integrations → App Store Connect API.
- Create a key with the Admin role so CapWrap can manage apps and provisioning profiles.
- Download the
.p8file once. Apple will not show it again. - Copy Issuer ID (top of the page) and the 10-character Key ID.
3. Paste them in CapWrap
App → Settings → App Store:
- Issuer ID, Key ID,
.p8file - Bundle ID (pre-filled from Capacitor when possible)
- Encryption checkbox — leave unchecked for most apps. CapWrap writes
ITSAppUsesNonExemptEncryptionso TestFlight is not stuck on Missing Compliance. Check it only if you truly use non-exempt encryption.
Tap Save Apple setup. CapWrap then:
- Reads your Team ID from the key
- Creates an Apple Distribution certificate and stores it (you never upload a
.p12)
Certificate limit
Apple allows only a few Distribution certificates per team. If the team is full of leftover CI certificates with no private key, CapWrap revokes those unused ones on this team and creates a new one. Development certificates and other teams are left alone.
Keys never go to GitHub. The browser sends them to CapWrap’s servers; GitHub Actions later fetches them with a short-lived run token.
4. iOS folder must exist
If Settings says iOS setup isn’t finished, the repo has no ios/ project yet. Finish the wrap follow-up in Lovable, push, then Try again. You cannot TestFlight a website-only repo.
After the first upload
Builds appear in TestFlight → your app → iOS builds. Processing can take a while. Install the TestFlight app on your iPhone, accept the invite, and install.
CapWrap does not yet submit the app for App Store review or external TestFlight. That stays in App Store Connect.