fastlane vs EAS Submit in 2026: which one ships your Expo or React Native app?
If you build with Expo or React Native, two names come up when it is time to ship: EAS Submit from Expo, and fastlane, the open-source automation tool. They look like competitors. They mostly aren't: they cover different parts of a release, and many teams end up using one for the binary and something else for everything around it.
This guide sets out what each tool does, based on their own documentation, and where each one stops.
The short answer
- EAS Submit uploads a built .ipa or .aab to App Store Connect and Google Play. That is all it does. Its docs say it does not manage store metadata, screenshots or release notes, and it does not submit your app for App Review.
- fastlane can upload the binary too, but its
deliverandsupplyactions also push metadata, screenshots and release notes, anddelivercan submit for App Review. - So the question isn't really "which one". It's "who handles the listing and the review submission once the build is uploaded".
What EAS Submit does
EAS Submit is the upload step of Expo Application Services. You point it at a build and it sends it to the store:
eas submit --platform ios --path ./my-app.ipa
eas submit --platform android --latest --non-interactive- iOS: the .ipa goes to App Store Connect and shows up in TestFlight after processing (Expo's docs say usually 10 to 15 minutes). It is not released to the App Store automatically: you still select the build in App Store Connect and submit it for review.
- Android: the .aab goes to the Google Play track you choose (internal, alpha, beta or production). For a brand-new app the default is the internal testing track. Setting
releaseStatustodraftin eas.json uploads without rolling out. - Credentials: Android needs a Google Service Account key. In CI (
--non-interactive), EAS can't prompt for anything, so the Google key or an App Store Connect API key must already be set up. - Chaining:
eas build --auto-submitsubmits right after the build, using the submit profile with the same name as the build profile.
Expo also has EAS Metadata, which pushes App Store listing text from a store.config.json file. Its docs mark it as beta, it does not support Google Play yet, and it cannot upload screenshots.
What fastlane does
fastlane is an open-source Ruby tool, now maintained by its community under the Mobile Native Foundation. You describe lanes in a Fastfile and chain actions. The two that matter for publishing:
- deliver (alias of
upload_to_app_store): uploads metadata, screenshots, App Preview videos and the .ipa to App Store Connect.submit_for_reviewsubmits once uploaded,automatic_releasereleases after approval,phased_releaseturns on Apple's 7-day phased release. It runsprecheckbefore submitting. - supply (alias of
upload_to_play_store): uploads the .aab or .apk, the listing text, images, screenshots and changelogs to Google Play, withtrack,rolloutandrelease_statusoptions.
The cost is the setup: Ruby and Bundler on every machine that runs the lane, a metadata folder to keep in sync with the stores, and a terminal when something breaks.
Side by side
| EAS Submit | fastlane | |
|---|---|---|
| Upload .ipa / .aab | Yes | Yes (deliver, supply) |
| Listing text | App Store only, via EAS Metadata (beta) | Yes, both stores |
| Screenshots | No | Yes, both stores |
| Release notes | No | Yes, both stores |
| Submit for App Review | No | Yes (submit_for_review) |
| Google Play track / rollout | Track and draft status | Track, rollout %, status |
| Setup | eas.json, Expo account | Ruby, Fastfile, metadata folders |
| Interface | CLI and Expo dashboard | CLI |
Which one should you use?
- You already build with EAS and only need the binary in the store: EAS Submit. It is one command and it knows your EAS builds.
- You want the whole release scripted in CI, listing and review submission included: fastlane, if you are fine maintaining Ruby lanes and metadata folders.
- You build with EAS but don't want to script the listing: keep EAS for the build, and use a tool with an interface for the rest.
That last case is where OneStore fits. It doesn't build your app. You upload the .ipa and .aab you built (with EAS or anything else), and it handles the listing in every language for both stores, screenshots in every required size, release notes, the Apple review submission and the Google Play staged rollout from one screen. The .ipa goes to Apple through a macOS worker running xcrun altool, the .aab through the Google Play Developer API.
If you are coming from fastlane, the fastlane alternatives guide and the OneStore vs fastlane comparison go further.
FAQs
Does EAS Submit upload metadata and screenshots?
No. Expo's documentation says EAS Submit uploads binaries and does not manage store metadata, screenshots or release notes. EAS Metadata can push App Store listing text from store.config.json, but it is in beta, does not support Google Play and cannot upload screenshots.
Does EAS Submit submit my iOS app for App Review?
No. The build lands in App Store Connect and TestFlight. You then select it on the version in App Store Connect and submit it for review yourself, or use a tool that does it, such as fastlane deliver with submit_for_review or OneStore.
Can I use EAS Build with fastlane?
Yes. Build with EAS, download the artifact, then run fastlane deliver or supply on it. Many teams do the build in EAS and the store work elsewhere.
Is fastlane still maintained in 2026?
Yes. fastlane is open source and maintained by its community under the Mobile Native Foundation, after Google stopped sponsoring it.