Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mobile-starter.amisi.ai/llms.txt

Use this file to discover all available pages before exploring further.

Prerequisites

  • Apple ID
  • Apple Developer Program membership ($99/year)
  • Completed App Identity configuration
  • Bundle identifier finalized

Enroll in Apple Developer Program

Individual Account

  1. Go to Apple Developer Program
  2. Click Enroll
  3. Sign in with your Apple ID
  4. Complete enrollment form
  5. Pay annual fee ($99 USD)
  6. Wait for approval (usually 24-48 hours)

Organization Account

  1. Go to Apple Developer Program
  2. Click Enroll
  3. Sign in with your Apple ID
  4. Select Company/Organization
  5. Provide:
    • Legal entity name
    • D-U-N-S Number
    • Legal authority documentation
  6. Pay annual fee ($99 USD)
  7. Wait for verification (can take several days)
Getting a D-U-N-S Number:
  • Free from Dun & Bradstreet
  • Required for organization accounts
  • Processing takes 1-2 weeks

Add Team Members

Access App Store Connect

  1. Go to App Store Connect
  2. Sign in with your Apple ID (account holder)
  3. Click Users and Access

Invite Team Members

  1. Click the + button
  2. Enter team member details:
    • First name
    • Last name
    • Email address
  3. Select role:
    • Admin - Full access to all apps and settings
    • App Manager - Manage apps, TestFlight, and App Analytics
    • Developer - Access to certificates, identifiers, and profiles
    • Marketing - Manage app metadata and pricing
    • Sales - Access to sales and financial reports
    • Customer Support - Access to customer reviews and ratings
  4. Configure app access:
    • All Apps - Access to all current and future apps
    • Specific Apps - Select individual apps
  5. Click Invite

Team Member Accepts Invitation

  1. Team member receives email invitation
  2. Click Accept Invitation
  3. Sign in with Apple ID
  4. Accept terms and conditions
  5. Access App Store Connect with assigned permissions

Configure Team in Xcode

For Team Members

  1. Open Xcode
  2. Go to XcodePreferencesAccounts
  3. Click + to add Apple ID
  4. Sign in with your Apple ID
  5. Select your team from the dropdown

For EAS Builds

EAS handles team configuration automatically when you provide credentials.

Create App in App Store Connect

1. Register App

  1. Go to App Store Connect
  2. Click My Apps
  3. Click the + button → New App
  4. Fill in app information:
    • Platforms: iOS
    • Name: Your app name (can be different from bundle name)
    • Primary Language: English (or your primary language)
    • Bundle ID: Select your bundle identifier
    • SKU: Unique identifier (e.g., com.yourcompany.yourapp)
    • User Access: Full Access or Limited Access
  5. Click Create

2. Configure App Information

App Information:
  • Privacy Policy URL (required)
  • Category (Primary and Secondary)
  • Content Rights
  • Age Rating
Pricing and Availability:
  • Price tier (Free or paid)
  • Availability (countries/regions)
  • Pre-order settings
App Privacy:
  • Data collection practices
  • Privacy policy
  • Data usage descriptions

3. Prepare for Submission

Version Information:
  • Screenshots (required for all device sizes)
  • App Preview videos (optional)
  • Description
  • Keywords
  • Support URL
  • Marketing URL (optional)
Build:
  • Upload build via EAS or Xcode
  • Select build for submission
  • Add export compliance information
General Information:
  • App icon (1024x1024)
  • Copyright
  • Contact information

Register Bundle Identifier

Using Apple Developer Portal

  1. Go to Certificates, Identifiers & Profiles
  2. Click + to add identifier
  3. Select App IDsContinue
  4. Select AppContinue
  5. Configure:
    • Description: Your app name
    • Bundle ID: Explicit (use your bundle identifier from app.json)
    • Capabilities: Enable required capabilities
      • Push Notifications
      • Sign in with Apple
      • Associated Domains
      • etc.
  6. Click ContinueRegister

Using EAS

EAS can automatically register bundle identifiers:
eas credentials
Select your platform and follow prompts to configure identifiers.

Configure Capabilities

Required Capabilities

Based on your app’s features, enable capabilities: Push Notifications:
  • Required for push notifications
  • Enable in Identifiers → Capabilities
Sign in with Apple:
  • Required if using Apple authentication
  • Enable in Identifiers → Capabilities
  • Configure in App Store Connect
Associated Domains:
  • Required for universal links
  • Enable in Identifiers → Capabilities
  • Add domains in Xcode or app.json
App Groups:
  • Required for sharing data between app and extensions
  • Enable in Identifiers → Capabilities

Configure in app.json

Add capabilities to your Expo config:
{
  "expo": {
    "ios": {
      "bundleIdentifier": "com.yourcompany.yourapp",
      "usesAppleSignIn": true,
      "associatedDomains": ["applinks:yourapp.com"],
      "infoPlist": {
        "NSUserTrackingUsageDescription": "We use tracking to provide personalized ads."
      }
    }
  }
}

Certificates and Provisioning Profiles

EAS manages certificates and profiles automatically:
eas credentials
Select:
  • iOSDistribution Certificate
  • iOSProvisioning Profile
EAS will:
  • Generate certificates
  • Create provisioning profiles
  • Store securely in EAS servers
  • Use automatically in builds

Manual Management

If you prefer manual management:
  1. Create Certificate Signing Request (CSR):
    • Open Keychain Access
    • Certificate Assistant → Request a Certificate
    • Save CSR file
  2. Create Distribution Certificate:
    • Go to Certificates
    • Click +
    • Select Apple Distribution
    • Upload CSR
    • Download certificate
    • Install in Keychain
  3. Create Provisioning Profile:
    • Go to Profiles
    • Click +
    • Select App Store
    • Select your App ID
    • Select your certificate
    • Name and generate profile
    • Download and install

TestFlight Setup

Enable TestFlight

  1. In App Store Connect, go to your app
  2. Click TestFlight tab
  3. Upload a build via EAS:
bun run build:production
  1. Wait for build processing (10-30 minutes)
  2. Add build to test group

Create Test Groups

Internal Testing:
  • Up to 100 internal testers
  • Team members with App Store Connect access
  • No review required
  • Instant distribution
External Testing:
  • Up to 10,000 external testers
  • Requires beta app review
  • Public link available

Add Testers

Internal Testers:
  1. TestFlight → Internal Testing
  2. Click + next to testers
  3. Select team members
  4. Testers receive email invitation
External Testers:
  1. TestFlight → External Testing
  2. Create test group
  3. Add testers by email or public link
  4. Submit for beta review
  5. Testers receive invitation after approval

Test Information

Provide for external testing:
  • What to test
  • Test credentials (if required)
  • Contact information
  • Privacy policy URL

App Review Guidelines

Before submission, ensure compliance:

Required Information

  • Demo Account: Provide test credentials if login required
  • Notes: Special instructions for reviewers
  • Contact Information: Phone and email for urgent issues

Common Rejection Reasons

  • Incomplete Information: Missing screenshots, descriptions
  • Crashes: App crashes during review
  • Broken Links: Non-functional URLs
  • Privacy: Missing privacy policy or data usage descriptions
  • Sign in with Apple: Required if other social logins present
  • Guideline Violations: Content, functionality, or design issues

Best Practices

  1. Test thoroughly before submission
  2. Provide clear demo account with full access
  3. Include detailed notes for complex features
  4. Respond quickly to reviewer questions
  5. Follow Human Interface Guidelines

Submission Checklist

Before submitting to App Store:
  • Apple Developer account active
  • Team members added with appropriate roles
  • Bundle identifier registered
  • App created in App Store Connect
  • All required capabilities enabled
  • Certificates and profiles configured
  • Build uploaded and processed
  • Screenshots for all device sizes
  • App description and metadata complete
  • Privacy policy URL provided
  • App privacy information filled
  • TestFlight testing completed
  • Demo account credentials provided
  • Review notes added

Common Issues

Team Not Showing in Xcode

Solution: Ensure you’re added to the team in App Store Connect and have accepted the invitation.

Bundle Identifier Already Registered

Solution: Bundle IDs are unique across all Apple Developer accounts. Choose a different identifier.

Certificate Limit Reached

Solution: Apple limits distribution certificates. Revoke unused certificates or use EAS to manage automatically.

Build Not Appearing in TestFlight

Solution: Wait for processing (10-30 minutes). Check for email about processing issues.

Missing Compliance

Solution: Provide export compliance information in App Store Connect for each build.

Official Documentation

Next Steps