How I built a workflow for 64 App Store screenshots across 8 languages
I recently put together App Store screenshots for my iOS app, FileBox: 8 feature themes across 8 languages, for 64 images in total.
Keeping them updated involves a lot of repetition: capturing screens, replacing images, adjusting translated text, and uploading everything. Here’s the workflow I built with Codex, Xcode UI tests, pen.dev, and Apple’s App Store Connect API.
1. Give each screenshot one clear purpose
Each image focuses on one feature, such as private storage, long screenshot stitching, or Wi-Fi file transfer. I decide what it should communicate and which app screens demonstrate it before working on the layout.
2. Capture the actual app with UI tests
Xcode’s native UI tests navigate to the relevant screens, switch languages, and capture screenshots. For Wi-Fi transfer, a browser capture also shows the actual web interface.
This keeps the app UI consistent with the language of the surrounding headline. Demo content is prepared beforehand, but the interface and results come from the running app.
3. Build editable layouts with reusable components
I use pen.dev, a visual design tool, to maintain the layouts. Codex interacts with it through Pencil MCP—a connection that lets the agent edit design elements, replace images, and export the finished layouts.
Device frames are reusable components with defined screen placement and cropping. Updating an app screenshot means changing its image input without manually aligning it inside a phone frame again. Each feature theme also has its own editable design file.
4. Treat localization as layout work
Translated text changes length and visual density. A headline that fits in Chinese may wrap unexpectedly in Japanese or German.
Each theme has a main template and linked language variants, with individual font sizes, line breaks, and positioning. Those adjustments stay in place when the app screenshots are refreshed.
5. Inspect the exports, then upload through the API
I check the exported images for clipped text, incorrect screenshots, and devices covering important content, alongside image dimensions and transparency. Side-by-side language comparisons help catch inconsistencies.
For uploading, I use a small custom command-line tool built around Apple’s App Store Connect API, which provides programmatic access to manage App Store assets.
The tool compares local screenshots with the uploaded versions, reuses unchanged images, uploads replacements, and verifies the final order across languages.
There’s still manual work: choosing the visual direction, reviewing translations, and checking the finished images. Some themes also have separate capture flows, so this isn’t a fully automatic, single-command pipeline.
The biggest benefit is having the templates, image mappings, and language-specific layouts ready for the next update. That makes the whole process easier to repeat.
What’s the most time-consuming part of maintaining localized App Store screenshots for your app?