This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

Manually submit an iOS app to the Apple App Store

Edit page

Archive and upload an iOS app to App Store Connect using Xcode on macOS.


This guide walks through archiving an iOS app with Xcode and uploading it to App Store Connect, which is useful if you aren't using EAS, or as a fallback if EAS Submit is temporarily unavailable.

If you already have a .ipa file, skip to Upload an existing build with Transporter. For most teams, EAS Submit is simpler and works from any OS.

Prerequisites

Prerequisites

4 requirements

1.

Sign up for an Apple Developer account

A paid Apple Developer membership is required to submit apps to the Apple App Store. Sign up on the Apple Developer Portal.

2.

Install Xcode

Xcode must be installed on a Mac. See Set up Xcode for instructions.

3.

Generate the ios directory

Your project needs an ios directory. If you use CNG, run npx expo prebuild to generate it.

4.

Create an app record in App Store Connect

An app record in App Store Connect with a matching bundle identifier is required. If you haven't created one, sign in to App Store Connect, click the blue + next to Apps, and choose New App.

1

Open the iOS workspace in Xcode

From your project directory, open the iOS workspace in Xcode:

Terminal
xed ios

Then:

  1. In the left sidebar, select your app's workspace.
  2. Go to Signing & Capabilities and select All or Release.
  3. Under Signing > Team, choose your Apple Developer team. Xcode will generate an automatically managed provisioning profile and signing certificate.

2

Configure a release scheme

  1. From the menu bar, open Product > Scheme > Edit Scheme.
  2. Select Run in the sidebar and set Build configuration to Release.

3

Build the app for release

From the menu bar, open Product > Build. Xcode will build the release binary.

4

Archive and upload to App Store Connect

  1. From the menu bar, open Product > Archive.
  2. Under Archives, click Distribute App from the right sidebar.
  3. Click App Store Connect and follow the prompts. Xcode will upload your build to App Store Connect. To get a .ipa file instead and upload it later, choose Export in the prompts and use Transporter.
  4. Sign in to App Store Connect, select your app, and submit it to TestFlight or for App Review from the App Store Connect dashboard.

Upload an existing build with Transporter

If you already have a .ipa file, for example from running eas build --platform ios --local or downloading a build from the EAS dashboard, you don't need to archive the app in Xcode. Upload it with Apple's Transporter app instead:

  1. Download Transporter from the App Store.
  2. Sign in with your Apple ID.
  3. Add the build either by dragging the .ipa file directly into the Transporter window or by selecting it from the file dialog opened with + or Add App button.
  4. Submit it by clicking the Deliver button.

This process can take a few minutes, then another 10-15 minutes of processing on Apple's servers. Afterward, you can check the status of your binary in App Store Connect and submit it to TestFlight or for App Review.

Further reading