Skip to content
Back to skills

Eas Submit Testflight

ASecurity

Prepare a controlled iOS build and TestFlight upload with EAS Submit. Use when the user asks to submit an iOS build to TestFlight.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 4, 2026
developmentgobashtestingapi

Works with

  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add khadinakbarlabs/expo-mobile-app-builder --skill eas-submit-testflight --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Eas Submit Testflight?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Eas Submit Testflight
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/khadinakbarlabs-eas-submit-testflight/badge)](https://www.skillsdirectory.com/skills/khadinakbarlabs-eas-submit-testflight)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "eas-submit-testflight"
description: "Prepare a controlled iOS build and TestFlight upload with EAS Submit. Use when the user asks to submit an iOS build to TestFlight."
---

# EAS Submit (TestFlight)

`eas submit -p ios` uploads a finished `.ipa` to App Store Connect. It is an external account action, not a local validation step.

## External action gate

Do not run an EAS build, access App Store Connect credentials, or upload an `.ipa` without explicit owner confirmation. Confirm the Apple developer account, App Store Connect app, bundle identifier, selected build, intended testers, and whether the action is a build or an upload. Building and uploading require separate confirmation.

## Pre-flight (must all pass)
- [ ] `MARKETING_VERSION` in app.json correct (semver)
- [ ] Built with the SDK/Xcode version currently required by Apple
- [ ] PrivacyInfo.xcprivacy present
- [ ] All 3rd-party SDKs ship PrivacyInfo + signature
- [ ] No deprecated APIs / build warnings
- [ ] Tests + lint pass

## Build then submit after confirmation
```bash
# Build
eas build --platform ios --profile production --non-interactive --no-wait

# Wait for build to finish (~10-25 min), or:
# eas build --platform ios --profile production  # interactive, waits

# Submit latest build to TestFlight
eas submit --platform ios --profile production --latest --non-interactive
```

## Versioning gotchas
- `CURRENT_PROJECT_VERSION` (build number) MUST monotonically increase. EAS handles this with `autoIncrement: "buildNumber"` in eas.json.
- Changing `MARKETING_VERSION` triggers re-review for external testers
- Submit < 6 builds per 24 hours — Apple's hard cap

## ASC setup (eas.json)
```json
"submit": {
  "production": {
    "ios": {
      "ascApiKeyId": "<owner-managed-key-id>",
      "ascApiKeyIssuerId": "<owner-managed-issuer-id>",
      "ascApiKeyPath": "<path-outside-the-repository/AuthKey.p8>",
      "ascAppId": "<owner-managed-app-id>"
    }
  }
}
```

Keep the `.p8` file outside the repository or in an approved CI secret store. Never commit it, paste it into a prompt, or expose it in logs.

## After upload
Apple processes ~10-30 min. Then:
1. **Internal testing** — instant, up to 100 ASC team members. No Beta Review.
2. **External testing** — first build per version requires Beta Review (~24h). Then up to 10,000 testers via email or public link.
3. **App Store submission** — a separate, explicitly confirmed step in ASC. Run `prep-app-store-listing` + `write-review-notes` first.

## Build expiry
TestFlight builds expire 90 days after upload. Plan rolling cadence so you always have a build <90 days old.

## Reference
`references/02-eas-pipeline.md`

Files in this skill

  • SKILL.md2.6 KB
  • agents/openai.yaml194 B
  • references/02-eas-pipeline.md1.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…