Updated July 2026 · 7 min read

iPhone screenshots,
per device.

One screenshot size is required for App Store Connect: 1290×2796, the iPhone 6.9″ master. Three more are optional. If you only have time for one, render it at 1290×2796 and let Apple handle the rest, but here's the full list, the actual device the size maps to, and how to capture at native resolution.

Required 1290 × 2796 Optional 3 more sizes Per locale 10 screenshots max Format PNG or JPEG, sRGB

The required size

Since iOS 18 (and reaffirmed in iOS 19), App Store Connect requires one iPhone screenshot size for new submissions: 1290×2796 portrait, the native resolution of the iPhone 16 Pro Max display class. Every other iPhone size is derived from this master via Apple's bicubic downsampling.

Required for every iPhone listing

Must ship
ClassPortraitLandscapeMaps to
iPhone 6.9″ 1290 × 2796 2796 × 1290 16 Pro Max, 15 Pro Max, 14 Pro Max
Checked against the live store console on 27 July 2026

Optional sizes (still accepted)

Apple still accepts older iPhone screenshot sizes if you want pixel-precise control on those displays. If you skip them, the App Store auto-generates them from your 6.9″ master. Most apps shouldn't bother, the auto-scaled versions are visually identical at carousel resolution.

Optional

Auto-scaled if omitted
ClassPortraitMaps to
iPhone 6.5″ 1242 × 2688 XS Max, 11 Pro Max
iPhone 6.5″ (alt) 1284 × 2778 12 Pro Max, 13 Pro Max
iPhone 5.5″ 1242 × 2208 8 Plus, 7 Plus, 6s Plus
Checked against the live store console on 27 July 2026
!

The iPhone 4″ size (640×1136, original SE) is no longer accepted for new submissions. App Store Connect will reject it. If your old binary has 4″ screenshots, leave them but don't upload new ones at that size.

Capturing at native resolution

The biggest source of size errors isn't the spec, it's that simulator screenshots default to logical points, not retina pixels. A "1290×2796" capture from your simulator is usually 430×932 unless you explicitly request native scale.

From the Xcode simulator

Boot the simulator at the 6.9″ device class (Hardware → Device → iOS 19 → iPhone 16 Pro Max), then capture with:

xcrun simctl io booted screenshot --type=png ./screenshot.png

This grabs the raw framebuffer, which is at native retina resolution. Cmd+S in the simulator UI also works, but it routes through window scaling, use the CLI for anything you'll upload.

From a real device

iPhone screenshots taken on the device (Side button + Volume Up) are at the device's actual screen resolution, which is what Apple wants. The catch: iOS 18+ adds an HDR color profile to screenshots. Strip it before upload using sips -m sRGB.icc screenshot.png, or App Store Connect quietly converts it for you (sometimes badly).

From Mockstack

If you're using the screenshot editor, upload your raw screenshot at any resolution, the canvas renders at the target size, not the source. The phone frame and background are vector; only your screenshot is sampled. Native-resolution captures are still preferable because they downsample more cleanly than upsample.

Layout considerations per device

Dynamic Island (Pro models)

The 1290×2796 master is a Pro display, meaning the status bar wraps around a Dynamic Island. If your app shows the status bar in screenshots, render with the Island present, Apple's auto-scaler will still produce correct non-Pro derivatives. Mockstack's iPhone Pro frame includes the Island in the correct position.

Notch (non-Pro models)

If you're targeting users on iPhone 14/15 base models specifically, render at 6.5″ size (1284×2778) with a notch frame. Otherwise the Island shows up in the auto-scaled derivative and reads slightly off.

Safe area

The bottom 64 points (~133 pixels at @3x) are home-indicator territory. Don't put critical content there. If you're cropping out the home indicator entirely (common for marketing), crop after rendering at full size, not before.

Status bar hygiene

Reviewers won't reject a messy status bar, but users notice one: 3% battery, no signal, 2:47 AM. Apple's own marketing shots use a standardized status bar, and yours should too. The simulator can set it directly:

xcrun simctl status_bar booted override --time "9:41" --batteryState charged --batteryLevel 100 --cellularBars 4 --operatorName ""

That gives you Apple's traditional 9:41, a full battery, and full signal on every capture. On a physical device, the closest equivalents are capturing in the morning with the battery topped up, or compositing your screenshot into a frame that draws its own clean chrome, which is what a screenshot tool's device frames do anyway. Two details worth the extra minute: turn off notification previews before capturing (a banner mid-shot is forever), and check that the capture locale's time format matches the listing locale, a 24-hour clock in a US listing is a small tell.

Common mistakes

Letterboxing a 5.5″ screenshot into a 6.9″ canvas

Padding a 1242×2208 capture inside a 1290×2796 canvas produces a screenshot with horizontal black bars. App Store Connect detects the empty pixels and rejects it. Render fresh at every target size, or just submit the 6.9″ and let Apple downsample.

Including the status bar with the wrong battery state

A screenshot with 47% battery in the status bar reads as "this app probably drains battery." For marketing, override the status bar to show 9:41 AM (Apple's traditional demo time), full battery, full signal. The simulator does this automatically with xcrun simctl status_bar override.

Localizing the wrong size

Screenshots are per-locale, and Apple will accept different art per locale. The size requirement is the same in every locale, 1290×2796 for iPhone. Don't try to ship a "compact German" version at 1242×2688; just translate the content and re-render at the master size.

Quick reference

One size required, three optional, capture at native resolution. The rest is content.