ScreenshotNeo

BlogGuides

Apple App Store Screenshot Guidelines: Sizes and Requirements

Apple App Store screenshot sizes, formats, counts, device groups, localization rules, upload workflow, validation scripts, and practical fixes.

By the ScreenshotNeo team1 October 20267 min read

Direct answer: Apple accepts one to ten App Store screenshots per platform localization. Upload JPEG, JPG or PNG files without transparency or alpha channels. There is no single universal pixel size: dimensions depend on the platform and device display group, and landscape uses the portrait dimensions reversed. Use Apple’s current Screenshot specifications table for the exact device groups your app supports.

If your interface is identical across device sizes and localizations, Apple allows you to provide only the highest-resolution required screenshots and scale them down automatically. Supply separate assets when a composition, orientation, device group or translation needs different artwork.

1. App Store screenshot requirements at a glance

Requirement Rule
Number of screenshots 1–10 per platform and localization
Formats .jpeg, .jpg or .png
Transparency Not allowed; remove alpha channels
Dimensions Depend on platform and display group; check Apple’s current table
Orientation Portrait and landscape are the same pair of dimensions reversed
Localization Use localized screenshot sets when text or composition changes
App previews Optional videos with separate specifications; they are not screenshots

Apple documents the count, formats, scaling and localization workflow in Upload app previews and screenshots.

2. Current example dimensions by platform

The dimensions below are examples from Apple’s current reference. They are not a replacement for the complete device table, which also includes older iPhone and iPad groups and Apple Watch sizes.

Platform or group Portrait dimensions Landscape dimensions
iPhone 6.9-inch 1260 × 2736, 1290 × 2796 or 1320 × 2868 2736 × 1260, 2796 × 1290 or 2868 × 1320
iPhone 6.5-inch 1284 × 2778 or 1242 × 2688 2778 × 1284 or 2688 × 1242
iPhone 6.3-inch 1179 × 2556 or 1206 × 2622 2556 × 1179 or 2622 × 1206
iPad 13-inch 2064 × 2752 or 2048 × 2732 2752 × 2064 or 2732 × 2048
Mac 1280 × 800, 1440 × 900, 2560 × 1600 or 2880 × 1800 (16:10)
Apple TV 1920 × 1080 or 3840 × 2160
Apple Vision Pro 3840 × 2160

For iPhone, Apple says the 6.9-inch group is required when the app runs on iPhone and those screenshots are supplied; without that group, the 6.5-inch group is required. Apple documents scaled fallbacks for additional groups. For iPad, the 13-inch group is required when the app runs on iPad, with fallbacks for other groups. Confirm the current table before submission.

3. Choosing the right asset strategy

Use one highest-resolution set when the UI is unchanged

Prepare the highest-resolution required group for each supported platform. Apple can scale those screenshots down when the interface and localization are the same. This reduces export and localization work.

Create device-specific screenshots when composition changes

Make separate assets when a headline wraps differently, a key control moves, a tablet layout reveals more content, or a landscape design uses a different visual hierarchy. Inspect scaled results rather than assuming they will remain legible.

Keep portrait and landscape sets intentional

Landscape is not a crop of portrait. Capture the app in its real landscape layout and reverse the dimension pair. Do not rotate a portrait file and expect the interface to be correct.

Plan localization before exporting

Text inside screenshot artwork must match the storefront localization. Longer translations can change line breaks and obscure controls. Apple lets you manage specific sizes and localizations through Media Manager.

4. A submission workflow that avoids rejected assets

  1. List every platform your binary supports: iPhone, iPad, Mac, Apple TV, Apple Vision Pro and Apple Watch where applicable.
  2. Open Apple’s current specification table and record the required display group for each platform.
  3. Choose portrait, landscape or both based on the actual app experience.
  4. Capture the highest-resolution required group for each platform.
  5. Build localized variants where text, imagery or composition changes.
  6. Export JPEG, JPG or PNG files with no alpha channel.
  7. Validate pixel dimensions, orientation and file readability before upload.
  8. In App Store Connect, upload while the app record is in an eligible status such as Prepare for Submission, Invalid Binary, Rejected, Metadata Rejected or Developer Rejected.
  9. Review the scaled device previews and reorder the first screenshots to show the strongest product flow.

5. Validate dimensions before uploading

The following scripts check a directory of files against an allowlist. Replace the examples with the device groups you actually support.

Python (Pillow)

from pathlib import Path
from PIL import Image

ALLOWED = {
    (1260, 2736), (1290, 2796), (1320, 2868),
    (1284, 2778), (1242, 2688),
    (2064, 2752), (2048, 2732),
    (1280, 800), (1440, 900), (2560, 1600), (2880, 1800),
    (1920, 1080), (3840, 2160),
}

for path in Path("screenshots").iterdir():
    if path.suffix.lower() not in {".png", ".jpg", ".jpeg"}:
        continue
    try:
        with Image.open(path) as image:
            size = image.size
            has_alpha = image.mode in {"RGBA", "LA"} or ("transparency" in image.info)
            print(f"{path.name}: {size[0]}x{size[1]} alpha={has_alpha} allowed={size in ALLOWED}")
    except Exception as exc:
        print(f"{path.name}: cannot read ({exc})")

Node.js (sharp)

import fs from 'node:fs/promises';
import path from 'node:path';
import sharp from 'sharp';

const allowed = new Set([
  '1260x2736', '1290x2796', '1320x2868',
  '1284x2778', '1242x2688', '2064x2752', '2048x2732',
  '1280x800', '1440x900', '2560x1600', '2880x1800',
  '1920x1080', '3840x2160'
]);

for (const name of await fs.readdir('screenshots')) {
  if (!/\\.(png|jpe?g)$/i.test(name)) continue;
  const file = path.join('screenshots', name);
  const meta = await sharp(file).metadata();
  const key = `${meta.width}x${meta.height}`;
  console.log(`${name}: ${key} allowed=${allowed.has(key)} hasAlpha=${Boolean(meta.hasAlpha)}`);
}

cURL image metadata check

For a remote asset you control, download it first and inspect it with your operating system’s image tools. cURL itself transfers bytes; it does not verify Apple’s dimensions.

curl -fL "https://example.com/app-store-screenshot.png" -o screenshot.png

6. Common errors and fixes

Error or symptom Cause Fix
Invalid screenshot dimensions The file does not match the selected device group. Use Apple’s current table and export the exact pixel pair, including the correct orientation.
Transparency or alpha rejected A PNG contains an alpha channel, even if it looks opaque. Flatten onto an opaque background and export again.
Wrong platform appears The screenshot was uploaded under a different platform or localization. Select the matching platform, display group and locale in Media Manager.
Text is clipped after scaling A high-resolution composition does not scale cleanly to a smaller group. Shorten copy, increase safe margins or provide a device-specific asset.
Landscape upload rejected Portrait dimensions were uploaded without reversing width and height. Capture the true landscape UI and reverse the dimension pair.
Upload control unavailable The app record is not in an eligible status. Use a status Apple lists for media uploads, such as Prepare for Submission or Rejected.
Preview video confusion App previews are videos with separate rules. Check Apple’s platform version information; apply still-image rules only to screenshots.

7. New device groups and time-sensitive checks

Apple’s September 9, 2026 release notes added specification entries for iPhone Duo, iPhone 18 Pro Max, iPhone 18 Pro, Apple Watch Ultra 4 and Apple Watch Series 12. The note says iPhone Duo upload support would become available later in 2026. Treat that as an announced specification, not confirmation that uploads are enabled today. Recheck the release notes and Screenshot specifications immediately before publishing or submitting.

8. Performance, reliability and cost considerations

  • Capture at the required native size: resizing a smaller image upward creates blur and can make text unreadable.
  • Keep source files: retain editable artwork and an export manifest containing platform, locale, dimensions and orientation.
  • Automate validation: run the Python or Node.js check in CI so a wrong dimension or alpha channel is caught before review.
  • Use deterministic content: test screenshots with stable data, locale, time zone and network state so every export is reproducible.
  • Control file size: compress JPEGs appropriately, but inspect small text and gradients after compression.
  • Budget localization work: each changed language or composition can require a new set; scaling reduces work only when the UI remains equivalent.

9. Or skip the browser setup

If you need screenshots of a web page for marketing references, documentation or an automated asset pipeline, ScreenshotNeo provides a single GET request and supports PNG, JPEG, WebP or PDF output. Its cleanup steps accept cookie or consent banners and remove more than 60 known consent platforms, newsletter popups and chat widgets before capture. Bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and each response reports the result in X-Page-Verdict and X-Billed headers. It also offers an MCP server for Claude, Cursor and other MCP clients.

See the ScreenshotNeo API documentation for all options.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Relevant options include full-page capture with lazy images loaded, CSS-selector element capture, custom CSS and JavaScript, click and hide actions, waits for selectors or network idle, custom headers and cookies, device presets, viewport and retina scale, image resizing, caching with a chosen TTL, signed links, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call and a usage API.

Free accounts include 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is available on every plan. Create a free ScreenshotNeo account.

10. FAQ

Can I upload fewer than ten screenshots?

Yes. Apple accepts one to ten screenshots for each platform and localization.

Are PNG files with transparent backgrounds allowed?

No. Screenshots cannot contain alpha channels or transparency.

Do I need every listed iPhone size?

No. Apple supports scaling from the highest-resolution required group when the interface and localization are the same. Add groups when the composition differs or scaling harms readability.

Are app preview videos included in the screenshot limit?

No. App previews are optional videos with separate specifications.

Where should I verify dimensions before release?

Use Apple’s current Screenshot specifications page because supported device groups and upload availability can change.