File: ios-production-build.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 about the process of creating a production build for iOS and automating the release process.
Copy page
In this chapter, we'll create our example app's production version and submit it for testing using TestFlight. After that, we'll submit them for App Store review to get it on the App Store.

Watch: Creating and releasing a production build for iOS
To publish and distribute an app on the Apple Play Store, we need:
production build profile is present in your eas.json, which is added by default.A production iOS build is optimized for Apple's App Store Connect, which allows distributing builds to testers with TestFlight and public end users through the App Store. This build type cannot be side-loaded on a simulator or device and can only be distributed through App Store Connect.
1
Create a distribution provisioning profile
Run the eas credentials command in the terminal and then answer the following prompts by EAS CLI:
2
To create an iOS production build using the default production profile, open your terminal and execute the following command. Since production is set as the default profile in the EAS configuration, there is no need to specify it explicitly with the --profile flag.
Terminal
Copy
- eas build --platform ios
The command will queue the build. Notice on the EAS dashboard that the Build Number is auto-incremented.
3
Submit the app binary to the App Store
To submit the app binary created from our latest EAS Build, run the eas submit
command:
Terminal
Copy
- eas submit --platform ios
After running this command, we need to:
This will trigger the submission process.
4
Release an internal testing version
After the submission process is complete, we'll need to log in to the Apple Developer account from the web browser.
Only if you have skipped iOS development build for devices chapter : You'll be prompted iOS app only uses standard/exempt encryption? Press Y to select the default value provided for this prompt. Since our app doesn't use encryption, it sets
ITSAppUsesNonExemptEncryptionin the Info.plist file toNOand manages the compliance check for the same when you are releasing your app to TestFlight/Apple App Store. When you are releasing your own app, and it uses encryption, you can selectNto skip this prompt next time.



After that, the app will download on our device so that we can test it.
Note: Similar to internal testing, we can also create a group for inviting external testers using TestFlight. Where internal testing has a limit of 100 users, TestFlight allows sharing a test release version externally with up to 10,000 testers and provides a publicly shareable link. For brevity, we are not going to cover those steps in this tutorial.
5
Submit the app to the Apple App Store
To prepare our app for App Store submission, go to the App Store tab:


Complete App Store listing: To prepare the app for store listing, see Create app store assets on how to create screenshots and previews.

6
For future releases, we can streamline the process by combining build creation and App Store submission into a single step by using the --auto-submit
flag with eas build:
Terminal
Copy
- eas build --platform ios --auto-submit
Note: This command will automatically upload your build to TestFlight for internal testing, but it will not automatically submit your app for App Store review. You'll still need to manually promote the build from TestFlight to the App Store when you're ready for public release. For more information, see Default submission behavior for app stores .
Chapter 9: Create a production build for iOS
We successfully created a production-ready iOS build, discussed distribution using TestFlight and Apple App Store using eas submit, and automated the release process with the --auto-submit.
Mark this chapter as read
In the next chapter, learn how to use the EAS Update to send OTA updates and share previews with our team.