Expo / EAS
How to make App Store screenshots for an Expo app
Verified against the primary sources below on
Steps
Know which part EAS covers
Expo's own "When to use EAS Metadata" table is explicit about the boundary. It marks these as supported:
- Manage app store info programmatically
- Catch metadata issues before review
- Collaborate on store presence updates
And these as not supported:
- Manage Google Play Store listings
- Upload screenshots
EAS Metadata is also documented as being in beta and subject to breaking changes. So
eas metadata:pushhandles your description, keywords and release notes, and leaves the gallery to you.Plan for two stores, not one
The reason an Expo project feels heavier here than a native one is that it usually ships to both stores in the same release, and the two do not take the same files.
App Store Connect wants exact pixel pairs per display slot. Google Play works on aspect-ratio bounds instead. A single canvas cannot satisfy both, so the set has to be produced twice from the same design rather than exported once and reused.
Capture the app itself, not a mockup of it
Apple's review guideline 2.3.3 asks that screenshots show the app in use, and a frame with no real app UI is one of the recurring reasons a gallery gets sent back.
With Expo, the cheapest honest capture is a development build on a simulator set to a device in the slot you are targeting. Capture the real screens you want to sell, then treat marketing composition as a layer on top of those captures rather than a replacement for them.
Compose the store frames
Once you have real screens, the store frames are a design job: a device frame, a headline that names what the app does, and a background that does not fight the UI.
That is the part AppScreenshotStudio does. You describe the app, get a first set back at exact App Store Connect dimensions, and refine it in chat until it reads right. Both the iOS and Android sets come out of the same project, which is the part that saves the duplicate work above.
Upload, and expect the gate to be strict
Screenshots go into App Store Connect directly. The upload validates dimensions and rejects files carrying an alpha channel, which is the point most people hit first. Both have their own page here:
When this is worth doing
Screenshots are store metadata, not build output, so they sit outside the part of the release that EAS automates. eas build produces a binary and eas submit delivers it, and neither touches the gallery.
EAS Metadata is the piece that reaches into the listing, and Expo documents its current boundary plainly: screenshots are marked as not supported, next to Google Play listings. That is worth knowing before you build a release script around it and discover the gap at submission time.
The practical consequence is that a cross-platform Expo release has one automated path for the binary and a manual path for the two screenshot sets, which is exactly the asymmetry that makes the screenshot step feel disproportionate on a small team.
Sources
- EAS Metadata | Expo Documentation (primary)
- Screenshot specifications | Apple, App Store Connect Help (primary)
Go deeper
The rule behind it
Related guides
- How to generate App Store screenshots in GitHub ActionsCall the AppScreenshotStudio REST API from a workflow step: create a project, send one chat message describing the app, then render. The render endpoint returns image URLs you can download and publish as build artifacts. Authentication is a bearer token you store as a repository secret.
- How to fix "The dimensions of one or more screenshots are wrong" in App Store ConnectApp Store Connect accepts a fixed list of pixel sizes per display slot, not a range or an aspect ratio. Read the file's real pixel dimensions, find the exact pair on Apple's list for the slot you are uploading to, and re-export at that size. Scaling an existing file to fit almost always lands one pixel off.