Skip to content

App Store Deployment

Guide for deploying to Apple App Store.

Prerequisites

  • Apple Developer account
  • App Store Connect access
  • Xcode with valid signing certificates
  • Fastlane installed

Setup

1. Certificates and Profiles

Terminal window
cd ios
fastlane match development
fastlane match appstore

2. Environment Variables

Set in CI/CD or .env:

APPLE_ID=your@email.com
APP_STORE_CONNECT_TEAM_ID=123456
MATCH_PASSWORD=<encrypted>

Deployment Commands

TestFlight (Beta)

Terminal window
fastlane ios beta

This will:

  1. Build the app
  2. Upload to TestFlight
  3. Notify testers

App Store (Production)

Terminal window
fastlane ios release

This will:

  1. Build the app
  2. Upload to App Store Connect
  3. Submit for review

Fastlane Configuration

ios/fastlane/Fastfile:

platform :ios do
desc "Push a new beta build to TestFlight"
lane :beta do
build_app(scheme: "Runner")
upload_to_testflight
end
desc "Push a new release build to the App Store"
lane :release do
build_app(scheme: "Runner")
upload_to_app_store(
skip_metadata: false,
skip_screenshots: true
)
end
end

App Store Metadata

Located in ios/fastlane/metadata/:

metadata/
├── en-US/
│ ├── name.txt
│ ├── subtitle.txt
│ ├── description.txt
│ ├── keywords.txt
│ ├── release_notes.txt
│ └── privacy_url.txt
└── screenshots/
├── iPhone 6.5/
└── iPad Pro 12.9/

Common Issues

Code Signing

If code signing fails:

Terminal window
fastlane match nuke distribution
fastlane match appstore

Build Number Conflicts

Increment build number:

Terminal window
fastlane run increment_build_number