App Store Submission
Complete guide to submitting your iOS app to the Apple App Store.
Prerequisites
- Apple Developer Account ($99/year)
- macOS computer (for first-time setup)
- App built with EAS Build
- App icons and screenshots ready
Step 1: App Store Connect Setup
Create App
- Go to App Store Connect
- Click "My Apps" → "+" → "New App"
- Fill in app information:
- Platform: iOS
- Name: Your app name (max 30 chars)
- Primary Language: English
- Bundle ID: Select from dropdown (must match app.json)
- SKU: Unique identifier (e.g., yourapp-ios-001)
Step 2: App Information
General Information
- Subtitle: Short description (30 chars)
- Category: Primary and secondary
- Content Rights: Who owns the content
Privacy Policy
Required URL to your privacy policy. Example:
typescript
https://yourapp.com/privacy-policyApple requires a privacy policy. You can use services like PrivacyPolicies.com to generate one.
Age Rating
Answer questions about your app's content to determine age rating.
Step 3: Pricing and Availability
- Price: Free or paid
- Availability: All territories or specific countries
- Pre-Order: Optional
Step 4: App Preview and Screenshots
Required Screenshot Sizes
- 6.5" Display (iPhone 14 Pro Max): 1290 x 2796 pixels
- 5.5" Display (iPhone 8 Plus): 1242 x 2208 pixels
- 12.9" iPad Pro: 2048 x 2732 pixels (if iPad support)
Generate Screenshots
bash
# Using Expo
npx expo prebuild
# Open in Xcode
open ios/YourApp.xcworkspace
# Run on simulator and capture screenshotsOr use tools like ScreenshotOne or Previewed.
App Preview Video (Optional)
30-second video showcasing your app (recommended but not required).
Step 5: Version Information
What to Provide
- Promotional Text: 170 chars, updatable without new version
- Description: 4000 chars, full app description
- Keywords: 100 chars, comma-separated (affects search)
- Support URL: Where users can get help
- Marketing URL: Your app's website (optional)
What's New in This Version
typescript
Version 1.0.0
Initial release featuring:
• Beautiful, intuitive interface
• Fast and reliable performance
• Dark mode support
• Offline functionalityStep 6: Build & Submit
Build for App Store
bash
# Build production version
eas build --platform ios --profile production
# Wait for build to complete (10-30 minutes)
# Build will be automatically uploaded to App Store ConnectEAS Build automatically uploads to App Store Connect if credentials are properly configured.
Or Submit Manually
bash
# Submit latest build
eas submit --platform ios --latest
# Or submit specific build
eas submit --platform ios --id <build-id>Step 7: Test Flight (Optional)
Test your app before releasing:
- Build with
--profile preview - Go to App Store Connect → TestFlight
- Add internal testers (up to 100)
- Share test link or add by email
- For external testing (up to 10,000 testers):
- Submit for Beta App Review
- Wait for approval (24-48 hours)
Step 8: Submit for Review
Export Compliance
Answer questions about encryption:
- Most apps: "No" (uses only standard HTTPS)
- If custom encryption: Additional documentation required
Advertising Identifier (IDFA)
If you use analytics or ads, check applicable boxes.
Content Rights
Confirm you have rights to all content in the app.
Submit!
Click "Submit for Review" button.
Review typically takes 1-2 days. You'll receive email updates on status.
Common Rejection Reasons
Guideline 2.1 - App Completeness
- App crashes on launch
- Missing features described in metadata
- Login required but no demo account provided
Guideline 4.0 - Design
- UI looks unfinished
- Poor user experience
- App is just a website wrapper
Guideline 5.1 - Privacy
- Missing privacy policy
- Requesting unnecessary permissions
- Not explaining permission requests
After Approval
Release Options
- Automatic: Released as soon as approved
- Manual: You choose when to release
- Phased: Gradual rollout over 7 days
Monitor Performance
- App Store Connect Analytics
- Crash reports
- User reviews and ratings
Updating Your App
Increment Version
app.json
{
"expo": {
"version": "1.0.1",
"ios": {
"buildNumber": "2"
}
}
}Submit Update
bash
# Build new version
eas build --platform ios --profile production
# Wait for build, then submit
eas submit --platform ios --latestBest Practices
✅ Provide demo account
If login required, include test credentials in review notes
✅ High-quality screenshots
Use professional screenshots with captions
✅ Detailed description
Explain all features clearly
✅ Test thoroughly
Use TestFlight before submitting