Skip to content

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

  1. Go to https://developer.apple.com/programs
  2. Sign in with your Apple ID
  3. Click Enroll → choose Individual (not Organisation)
  4. Pay the annual fee: €99/year (EU billing address required)
  5. Approval is usually instant for individuals; may take up to 48 h

Step 3 — Create the App in App Store Connect

  1. Go to https://appstoreconnect.apple.com
  2. Click My Apps → +New App
  3. Fill in:
  4. Platform: iOS
  5. Name: EquiTrail
  6. Primary Language: Dutch
  7. Bundle ID: com.nossie.equitrail ← must match ios/Runner/Info.plist
  8. SKU: equitrail (internal reference, not shown to users)
  9. Click Create

Step 4 — Configure Xcode Signing

  1. Open the workspace (not the project):
    open /Users/nossie/app/equitrail/ios/Runner.xcworkspace
    
  2. Select the Runner target → Signing & Capabilities tab
  3. Check Automatically manage signing
  4. Select your Team (your Apple Developer account name)
  5. 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
Then in Xcode: Product → Archive → Distribute App → TestFlight & App Store → Upload

Option B — Transporter app (Mac App Store, free)

  1. Download Transporter from the Mac App Store
  2. Drag & drop the .ipa file
  3. 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)

  1. App Store Connect → TestFlight → Internal Testing
  2. Add your own Apple ID as tester
  3. Build appears automatically within ~30 minutes of upload
  4. Install TestFlight app on your iPhone, accept the invite

External Testers (up to 10,000 people, requires Apple Beta review ~1–2 days)

  1. App Store Connect → TestFlight → External Testing → +
  2. Add a group name, e.g. "Beta testers"
  3. Add email addresses or share the public invite link
  4. 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