Skip to the page
appShots

Render and export

Rendering turns the slides into PNG files at the exact pixel sizes App Store Connect accepts. The previews in the Studio are drawn by the same code, so the files look like the previews.

Three ways#

In the Studio. Press Export ZIP on the project page. It renders everything in the background and downloads <project>-screenshots.zip when it is done. You can keep working meanwhile. See In the background.

From the Mac.

appshots pull streaks --render
appshots pull streaks --render --out ~/Desktop/streaks

The files land in ./store-screenshots/streaks, or in the folder after --out. Without --render you get the files of the last render.

Through an agent. The render tool renders, shows the agent a contact sheet to check, and returns a link to every file. It can render single slides too:

{ "project": "streaks", "slides": [3] }

Every call uses one of the account's renders, whatever it draws. See How many renders.

What is in the ZIP#

README.txt
en-US/
  iphone-6.9/01.png … 08.png
  iphone-6.3/01.png … 08.png
  iphone-6.5/01.png … 08.png
  iphone-6.1/01.png … 08.png
  ipad-13/01.png … 08.png
  ipad-11/01.png … 08.png
  mac-2880/01.png … 08.png
  creative-assets/header.png
  creative-assets/search.png
  banners/readme.png
de-DE/
  …

One folder per language, then one per display of App Store Connect, with the slides numbered in store order. README.txt lists which folder goes onto which display. banners holds the pictures for outside the store, when the project has any. See Banners. The files are PNGs without transparency at the exact pixel size of their display, which is what App Store Connect asks for.

Which sizes#

You design the set once per device. The export holds it at every size:

Your project has The export holds
iPhone screenshots iphone-6.9, iphone-6.3, iphone-6.5, iphone-6.1
iPhone Duo screenshots as well iphone-duo too
iPad screenshots as well ipad-13 and ipad-11 too
Mac screenshots as well mac-2880 too

Sizes of the same shape are the same picture scaled, so they look alike on every display. The sizes for older devices are left out until you tick them under Project → Export sizes. See Sizes.

How long it takes#

Every language and every device is a full pass over the set. A set in three languages takes about three times as long as the same set in one. The extra sizes of a device cost next to nothing, because they are the same picture scaled.

The server renders one job at a time. Yours waits its turn if somebody else's is running. One account can have one render running and one waiting. A third is refused with "Two renders are already under way for this account", so wait for one to finish.

In the background#

A render started in the Studio runs on the server and does not need the page. Keep editing, open another project, switch to another tab or close the laptop lid: the render goes on.

  • It draws the project as it was when you pressed the button. What you change while it runs is in the next render, not in this one.
  • Renders in the sidebar shows the progress, and the × beside a running render cancels it.
  • When it is done, the ZIP downloads by itself. If the tab was in the background, its title says the render is done and the download starts when you look at it again.
  • Notify me when it is done lets your browser show a notification. It asks for permission once.
  • A finished render stays in the list for ten minutes, and Download ZIP fetches the files again. They are kept until the next render replaces them.

A render stops if the server restarts, for instance for an update. The Studio says so, and you start it again. It has not used a render.

How many renders#

An account gets 10 renders. One render is one press of Export ZIP, one appshots pull --render, or one call of the render tool, whatever it draws: a single slide counts the same as the whole set in every language.

  • Previews in the Studio are free. You only use a render when you export.
  • A render that fails or that you cancel uses none.
  • The Studio shows how many are left beside Renders in the sidebar, and the render tool tells the agent after each call.
  • Downloading the ZIP of the last render again uses none.

When none are left, ask the person who runs the server for more. Their own renders are not counted.

Upload to App Store Connect#

  1. Open your app in App Store Connect, then the version you are preparing.
  2. Under Previews and Screenshots, pick the language at the top right.
  3. Open a display and drag all files of its folder onto it. The file names keep them in order.
  4. Do the same for each language.
  5. Header and search results images go on the Header and Search Results tab. See Header and search results.
  6. Banners are not for App Store Connect. See where each one goes.
Display in App Store Connect Folder
iPhone with Dynamic Island (large display) iphone-6.9
iPhone with Dynamic Island (medium display) iphone-6.3
iPhone with Face ID (large display) iphone-6.5
iPhone with Face ID (medium display) iphone-6.1
iPhone Duo iphone-duo
iPad 13" display ipad-13
iPad 11" display ipad-11
Mac, on the macOS version of the app mac-2880

A display only takes its own sizes. A file from another folder is refused as having the wrong dimensions. A display you leave empty is filled by App Store Connect from a larger one, so you can also upload the largest iPhone and iPad folders alone.

App Store Connect takes up to ten screenshots per language and display. An appShots set has at most ten slides, so a whole set fits.

Render again#

A render replaces the last one. Render again after you change a slide, replace a screenshot, or when an update redraws a layout. Projects are never rendered by themselves.