File: ios.md | Updated: 11/15/2025
Hide navigation
Search
Ctrl K
Home Guides EAS Reference Learn
Archive Expo Snack Discord and Forums Newsletter
Copy page
Learn how to submit your app to the Apple App Store from your computer and CI/CD services.
Copy page
This guide outlines how to submit your app to the Apple App Store from your computer or from a CI/CD service.
Submitting your app from your computer
Prerequisites
4 requirements
Sign up for an Apple Developer account
An Apple Developer account is required to submit your app to the Apple App Store. You can sign up for an Apple Developer account on the Apple Developer Portal .
Include a bundle identifier in app.json
Include your app's bundle identifier in app.json:
app.json
Copy
{ "ios": { "bundleIdentifier": "com.yourcompany.yourapp" } }
Install EAS CLI and authenticate with your Expo account
Install EAS CLI and login with your Expo account:
Terminal
Copy
- npm install -g eas-cli && eas login
Build a production app
You'll need a production build ready for store submission. You can create one using EAS Build :
Terminal
Copy
- eas build --platform ios --profile production
Alternatively, you can build the app on your own computer with eas build --platform ios --profile production --local or with Xcode.
Once you have completed all the prerequisites, you can start the submission process.
Run the following command to submit a build to the Apple App Store:
Terminal
Copy
- eas submit --platform ios
The command will lead you step by step through the process of submitting the app. You can configure the submission process by adding a submission profile in eas.json:
eas.json
Copy
{ "submit": { "production": { "ios": { "ascAppId": "your-app-store-connect-app-id" } } } }
ascAppId can be found under General Information section under Apple ID.
Learn about all the options you can provide in the eas.json reference .
To speed up the submission process, you can use the --auto-submit flag to automatically submit a build after it's built:
Terminal
Copy
- eas build --platform ios --auto-submit
Learn more about the --auto-submit flag in the automate submissions
guide.
Submitting your app using CI/CD services
Prerequisites
5 requirements
Sign up for an Apple Developer account
An Apple Developer account is required to submit your app to the Apple App Store. You can sign up for an Apple Developer account on the Apple Developer Portal .
Include a bundle identifier in app.json
Include your app's bundle identifier in app.json:
app.json
Copy
{ "ios": { "bundleIdentifier": "com.yourcompany.yourapp" } }
Configure your App Store Connect API Key
Run the following command to configure your App Store Connect API Key:
Terminal
Copy
- eas credentials --platform ios
The command will prompt you to select the type of credentials you want to configure.
production build profileDo you want to use your own credentials?
App Store Connect API Key: Create your own API Key
then set it with the ascApiKeyPath, ascApiKeyIssuerId, and ascApiKeyId fields in eas.json.
App Specific Password: Provide your password
and Apple ID Username by passing them in with the EXPO_APPLE_APP_SPECIFIC_PASSWORD environment variable and appleId field in eas.json, respectively.
Provide a submission profile in eas.json
Then, you'll need to provide a submission profile in eas.json that includes the following fields:
eas.json
Copy
{ "submit": { "production": { "ios": { "ascAppId": "your-app-store-connect-app-id" } } } }
ascAppId can be found under General Information section under Apple ID.
Learn about all the options you can provide in the eas.json reference .
Build a production app
You'll need a production build ready for store submission. You can create one using EAS Build :
Terminal
Copy
- eas build --platform ios --profile production
Alternatively, you can build the app on your own computer with eas build --platform ios --profile production --local or with Xcode.
Once you have completed all the prerequisites, you can set up a CI/CD pipeline to submit your app to the Apple App Store.
You can use EAS Workflows to build and submit your app automatically.
Create a workflow file named .eas/workflows/submit-ios.yml at the root of your project.
Inside submit-ios.yml, you can use the following workflow to kick off a job that submits an iOS app:
.eas/workflows/submit-ios.yml
Copy
on: push: branches: ['main'] jobs: build_ios: name: Build iOS app type: build params: platform: ios profile: production submit_ios: name: Submit to TestFlight needs: [build_ios] type: testflight params: build_id: ${{ needs.build_ios.outputs.build_id }}
Show More
The workflow above will build the iOS app and then submit it Apple App Store's TestFlight. You can share with internal and external testing groups using the testflight job. See the pre-packaged testflight job
for more information.
You can use other CI/CD services to submit your app with EAS Submit, like GitHub Actions, GitLab CI, and more by running the following command:
Terminal
Copy
- eas submit --platform ios --profile production
This command requires a personal access token
to authenticate with your Expo account. Once you have one, provide the EXPO_TOKEN environment variable in the CI/CD service, which will allow the eas submit command to run.
If you ever need to submit your build without going through EAS Submit, for example, if the service is temporarily unavailable for maintenance, you can upload to the Apple App Store manually from a macOS device.
How to upload to the Apple App Store manually from a macOS device
Start by creating an app profile in App Store Connect, if you haven't already:
Finally, you need to upload the IPA to the Apple App Store.
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: