Apple Developer Account & TestFlight Setup¶
Guide for getting EquiTrail onto iOS TestFlight for external testers.
Step 1 — Create an Apple ID¶
Skip if you already have one.
→ https://appleid.apple.com
Use your real name and a permanent email address (nossiej@gmail.com is fine).
Step 2 — Enroll in the Apple Developer Program¶
- Go to https://developer.apple.com/programs
- Sign in with your Apple ID
- Click Enroll → choose Individual (not Organisation)
- Pay the annual fee: €99/year (EU billing address required)
- Approval is usually instant for individuals; may take up to 48 h
Step 3 — Create the App in App Store Connect¶
- Go to https://appstoreconnect.apple.com
- Click My Apps → + → New App
- Fill in:
- Platform: iOS
- Name: EquiTrail
- Primary Language: Dutch
- Bundle ID: com.nossie.equitrail ← must match
ios/Runner/Info.plist - SKU:
equitrail(internal reference, not shown to users) - Click Create
Step 4 — Configure Xcode Signing¶
- Open the workspace (not the project):
open /Users/nossie/app/equitrail/ios/Runner.xcworkspace - Select the Runner target → Signing & Capabilities tab
- Check Automatically manage signing
- Select your Team (your Apple Developer account name)
- Xcode auto-generates the provisioning profile — no manual portal steps needed
Your iPhone SE can be registered as a test device: Xcode → Window → Devices and Simulators → plug in via USB → it appears and is auto-added to your profile.
Step 5 — Build the IPA¶
cd /Users/nossie/app/equitrail
# Clean first
flutter clean
flutter pub get
# Build release IPA
flutter build ipa --release
The IPA lands at:
build/ios/ipa/equitrail.ipa
Step 6 — Upload to App Store Connect¶
Option A — Xcode (easiest)¶
open build/ios/archive/Runner.xcarchive
Option B — Transporter app (Mac App Store, free)¶
- Download Transporter from the Mac App Store
- Drag & drop the
.ipafile - Click Deliver
Option C — Command line (altool)¶
xcrun altool \
--upload-app \
--file build/ios/ipa/equitrail.ipa \
--type ios \
--username nossiej@gmail.com \
--password "@keychain:AC_PASSWORD"
Store your app-specific password in Keychain first: Apple ID → appleid.apple.com → App-Specific Passwords → Generate
Step 7 — Set Up TestFlight Testing¶
Internal Testers (up to 25 people, no Apple review needed)¶
- App Store Connect → TestFlight → Internal Testing
- Add your own Apple ID as tester
- Build appears automatically within ~30 minutes of upload
- Install TestFlight app on your iPhone, accept the invite
External Testers (up to 10,000 people, requires Apple Beta review ~1–2 days)¶
- App Store Connect → TestFlight → External Testing → +
- Add a group name, e.g. "Beta testers"
- Add email addresses or share the public invite link
- Submit for Beta App Review (first time only; subsequent builds skip review)
Step 8 — Privacy Policy Requirement¶
Apple requires a privacy policy URL for TestFlight external testing.
✅ Already available at: https://equitrail.horse/privacy
Enter this URL in App Store Connect → App Information → Privacy Policy URL
Required Info for App Store (when ready to publish)¶
| Field | Value |
|---|---|
| App Name | EquiTrail |
| Subtitle | GPS ritregistratie voor ruiters |
| Bundle ID | com.nossie.equitrail |
| Category | Sports |
| Age Rating | 4+ |
| Privacy Policy | https://equitrail.horse/privacy |
| Support URL | https://equitrail.horse |
| Copyright | © 2026 EquiTrail / Paul Tierlier |
Troubleshooting¶
| Error | Fix |
|---|---|
No profiles for 'com.nossie.equitrail' |
In Xcode: Preferences → Accounts → Download Manual Profiles |
Missing compliance |
In App Store Connect, answer the export compliance question (No encryption beyond standard HTTPS) |
ITMS-90078: Missing Push Notification Entitlement |
Remove push entitlement from Runner.entitlements if not using push, or add push capability |
| Build takes very long | First IPA build downloads iOS symbols — normal, subsequent builds are faster |
code signing is required for product type |
Make sure iPhone is trusted: Settings → General → VPN & Device Management → Trust |
Notes¶
- The iPhone SE connected via USB is automatically usable for internal testing once its UDID is in the provisioning profile (Xcode handles this automatically with auto-signing)
- Apple Watch companion app (watchOS): requires a separate watchOS app target in Xcode — the current Galaxy Watch (Wear OS) build does not run on Apple Watch; see roadmap for Apple Watch support
- App Store Connect build processing takes ~15–30 minutes after upload before it appears in TestFlight