Apple App Store

Publish your iOS app to the Apple App Store and reach iPhone and iPad users worldwide. This guide covers everything from Apple Developer setup to App Store submission.

Cost: Publishing iOS apps requires an Apple Developer Program membership, which costs $99/year. This is an Apple requirement, not an IndigiCoder fee.

Prerequisites

  • IndigiCoder Pro Plan — Required for mobile builds
  • Apple Developer Program — $99/year membership
  • Apple credentials connected to Expo — For signing your app

Step 1: Join Apple Developer Program

  1. Go to Apple Developer Program
  2. Click "Enroll"
  3. Sign in with your Apple ID (or create one)
  4. Choose Individual or Organization enrollment
  5. Complete identity verification
  6. Pay the $99/year fee
  7. Wait for Apple to process (can take 24-48 hours)
Individual vs Organization: Choose "Individual" for personal apps. "Organization" requires a D-U-N-S number and is for companies publishing apps.

Joining Apple Developer Program

Video coming soon

Step 2: Connect Apple to Expo

Expo needs access to your Apple Developer account to sign your app. There are two ways to connect:

Option A: App Store Connect API Key (Recommended)

  1. Go to App Store Connect → Users and Access → Keys
  2. Click the "+" button to create a new key
  3. Name it "Expo" or "IndigiCoder"
  4. Select "Admin" access
  5. Click "Generate"
  6. Download the .p8 key file
  7. Note the Key ID and Issuer ID
  8. Go to expo.dev → Account Settings → Credentials
  9. Add your Apple credentials using the API key
Keep your .p8 file safe! Apple only lets you download it once. Store it securely — you'll need it if you ever need to reconnect.

Option B: Apple ID (Simpler but Less Secure)

  1. Go to expo.dev → Account Settings → Credentials
  2. Add your Apple ID and password
  3. If you have 2FA enabled, you'll need an app-specific password

Connecting Apple Account to Expo

Video coming soon

Step 3: Build Your iOS App

  1. Open your mobile app project in IndigiCoder
  2. Click the "Build" button
  3. Select "iOS"
  4. Choose "Production" build profile
  5. Click "Start Build"
  6. Wait for the build to complete (10-20 minutes)
Automatic Certificate Management: When you build with Production profile, Expo automatically generates and manages all required iOS certificates and provisioning profiles using your connected Apple credentials.

Step 4: Create App in App Store Connect

  1. Go to App Store Connect
  2. Click "My Apps"
  3. Click the "+" button → "New App"
  4. Fill in:
    • Platform — iOS
    • Name — Your app's display name
    • Primary language
    • Bundle ID — Select the one created by Expo
    • SKU — A unique identifier (e.g., "myapp001")
  5. Click "Create"

Creating App in App Store Connect

Video coming soon

Step 5: Complete App Information

App Store Tab

Under App Information:

  • Privacy Policy URL — Required for all apps
  • Category — Choose the most appropriate category
  • Age Rating — Complete the questionnaire

Version Information

Under your version (e.g., "1.0 Prepare for Submission"):

  • Screenshots — Required for each device size:
    • 6.5" iPhone (1284 × 2778 px)
    • 5.5" iPhone (1242 × 2208 px)
    • iPad Pro 12.9" (2048 × 2732 px) — if supporting iPad
  • Description — Up to 4000 characters
  • Keywords — Comma-separated, 100 character limit
  • Support URL — Link to your support page
  • Marketing URL — Optional

App Review Information

  • Contact info — For Apple's review team
  • Demo account — If your app requires login, provide test credentials
  • Notes — Any special instructions for reviewers

Step 6: Upload Your Build

There are two ways to upload your iOS build:

Option A: Using EAS Submit (Recommended)

After your build completes in IndigiCoder/Expo, you can submit directly to App Store Connect. Go to your build on expo.dev and click "Submit to App Store".

Option B: Manual Upload with Transporter

  1. Download your .ipa file from the completed build
  2. Download Transporter from the Mac App Store
  3. Open Transporter and sign in with your Apple ID
  4. Drag your .ipa file into Transporter
  5. Click "Deliver"
  6. Wait for upload and processing (5-15 minutes)

Uploading iOS Build

Video coming soon

Step 7: Submit for Review

  1. In App Store Connect, go to your app
  2. Under your version, click "Build"
  3. Select the build you just uploaded
  4. Review all sections have checkmarks
  5. Click "Submit for Review"
  6. Answer the export compliance questions
  7. Confirm submission

What Happens Next?

  • Review time: Typically 24-48 hours, but can be longer
  • Status updates: Check App Store Connect or get email notifications
  • If rejected: Apple provides specific feedback in the Resolution Center
  • If approved: Your app goes live on the App Store!

TestFlight: Beta Testing

Before submitting to the App Store, you can distribute beta versions via TestFlight:

  1. Upload your build (same process as above)
  2. In App Store Connect, go to TestFlight
  3. Add Internal Testers (up to 100, no review needed)
  4. Or add External Testers (up to 10,000, requires brief review)
  5. Testers receive a link to install via the TestFlight app
Highly Recommended: Use TestFlight to test on real devices before submitting to the App Store. It's free and catches issues before Apple reviews your app.

TestFlight Beta Testing

Video coming soon

Common Rejection Reasons

Guideline 2.1 - App Completeness

App crashes, has broken links, or placeholder content.

Guideline 2.3 - Accurate Metadata

Screenshots, descriptions, or previews don't match the app.

Guideline 4.2 - Minimum Functionality

App is too simple or replicates built-in iOS functionality.

Guideline 5.1.1 - Data Collection

Missing or inadequate privacy policy, or incorrect App Privacy labels.

Updating Your App

  1. Make changes in IndigiCoder
  2. Create a new Production build
  3. In App Store Connect, click "+ Version"
  4. Enter the new version number
  5. Upload the new build
  6. Add "What's New" release notes
  7. Submit for review

Publishing to Apple App Store

Video coming soon

Apple App Store - Documentation | IndigiCoder