Resize and validate App Store screenshots for all device classes using macOS sips. Use when preparing or fixing screenshots for App Store Connect submission.
Use this skill to resize screenshots to the exact pixel dimensions required by App Store Connect and validate they pass upload requirements. Uses the built-in macOS sips tool — no third-party dependencies needed.
| Display Size | Accepted Dimensions (portrait × landscape) |
|---|---|
| 6.9" | 1260 × 2736, 2736 × 1260, 1320 × 2868, 2868 × 1320, 1290 × 2796, 2796 × 1290 |
| 6.5" | 1242 × 2688, 2688 × 1242, 1284 × 2778, 2778 × 1284 |
| 6.3" | 1206 × 2622, 2622 × 1206, 1179 × 2556, 2556 × 1179 |
| 6.1" | 1125 × 2436, 2436 × 1125, 1080 × 2340, 2340 × 1080, 1170 × 2532, 2532 × 1170 |
| 5.5" | 1242 × 2208, 2208 × 1242 |
| 4.7" | 750 × 1334, 1334 × 750 |
| 4" | 640 × 1096, 640 × 1136, 1136 × 600, 1136 × 640 |
| 3.5" | 640 × 920, 640 × 960, 960 × 600, 960 × 640 |
Note: 6.9" accepts screenshots from 6.5", 6.7", and 6.9" devices. 6.3" accepts from 6.1" and 6.3". 6.1" accepts from 5.4", 5.8", and 6.1".
| Display Size | Accepted Dimensions |
|---|---|
| 13" | 2064 × 2752, 2752 × 2064, 2048 × 2732, 2732 × 2048 |
| 11" | 1668 × 2420, 2420 × 1668, 1668 × 2388, 2388 × 1668, 1640 × 2360, 2360 × 1640, 1488 × 2266, 2266 × 1488 |
| iPad Pro 2nd gen 12.9" | 2048 × 2732, 2732 × 2048 |
| 10.5" | 1668 × 2224, 2224 × 1668 |
| 9.7" | 1536 × 2008, 1536 × 2048, 2048 × 1496, 2048 × 1536, 768 × 1004, 768 × 1024, 1024 × 748, 1024 × 768 |
| Device | Dimensions |
|---|---|
| Ultra 3 (49mm) | 422 × 514, 410 × 502 |
| Series 11 (46mm) | 416 × 496 |
| Series 9 (45mm) | 396 × 484 |
| Series 6 (44mm) | 368 × 448 |
| Series 3 (42mm) | 312 × 390 |
| Dimensions |
|---|
| 1280 × 800 |
| 1440 × 900 |
| 2560 × 1600 |
| 2880 × 1800 |
| Dimensions |
|---|
| 1920 × 1080 |
| 3840 × 2160 |
macOS screenshots often contain hidden Unicode characters (e.g., U+202F narrow no-break space) that cause sips and other tools to fail with "not a valid file". Always sanitize first:
python3 -c "
import os
for f in os.listdir('.'):
clean = f.replace('\u202f', ' ')
if f != clean:
os.rename(f, clean)
print(f'Renamed: {clean}')
"
sips -g pixelWidth -g pixelHeight screenshot.png
Check for alpha channel and color space issues before uploading:
sips -g hasAlpha -g space screenshot.png
App Store Connect rejects screenshots with alpha transparency. Remove it by round-tripping through JPEG:
sips -s format jpeg input.png --out /tmp/temp.jpg
sips -s format png /tmp/temp.jpg --out output.png
rm /tmp/temp.jpg
Batch-strip alpha from all PNGs in a directory:
for f in *.png; do
if sips -g hasAlpha "$f" | grep -q "yes"; then
sips -s format jpeg "$f" --out /tmp/temp.jpg
sips -s format png /tmp/temp.jpg --out "$f"
rm /tmp/temp.jpg
echo "Stripped alpha: $f"
fi
done
# Portrait iPhone 6.5" (1284 × 2778)
sips -z 2778 1284 input.png --out output.png
Note: sips -z takes height first, then width: sips -z <height> <width>.
mkdir -p resized
for f in *.png; do
sips -z 2778 1284 "$f" --out "resized/$f"
done
mkdir -p appstore-screenshots
# iPhone
sips -z 2868 1320 input.png --out appstore-screenshots/iphone-6.9.png
sips -z 2778 1284 input.png --out appstore-screenshots/iphone-6.5.png
sips -z 2622 1206 input.png --out appstore-screenshots/iphone-6.3.png
sips -z 2532 1170 input.png --out appstore-screenshots/iphone-6.1.png
sips -z 2208 1242 input.png --out appstore-screenshots/iphone-5.5.png
sips -g pixelWidth -g pixelHeight -g hasAlpha resized/*.png
Confirm all files show the target dimensions and hasAlpha: no.
sips stretches images to fit exact dimensions. For best results, use source screenshots captured at or near the target aspect ratio.--out) to preserve originals.sips preserves the input format by default.sips -g hasAlpha before upload.sips -m "/System/Library/ColorSync/Profiles/sRGB IEC61966-2.1.icc" input.png --out output.png.