Unfortunately none of the answers here seem to explain why a seemingly valid screenshot taken on a device isn't working.... several years on the documentation still isn't any clearer either!
iOS requires at least 640 x 920 pixels.
TRANSLATION:
640 x 920 pixels is just one of the accepted screenshot sizes
From some trial and error, it would seem that the screenshot must be provided in rendered pixels, but only at the highest pixel density for that size group.
e.g.
- iPhone 4/4S etc = 320x480 @ 2x = 640x960
- iPhone 5/SE etc = 320x568 @ 2x = 640x1136
- iPhone 6/6S/7/8/SE2 = 375x667 @ 2x = 750x1334
- iPhone 6+/6S+/7+/8+ = 414x736 @ 3x = 1242x2208
- iPhone X/XS/11 Pro/12 mini/13 mini = 375x812 @ 3x = 1125x2436
- iPhone XR/11/11 Pro Max = 414x896 @ 3x = 1242x2688
- iPhone 12/12 Pro/13/13 Pro = 390x844 @ 3x = 1170x2532
- iPhone 12 Pro Max/13 Pro Max = 428x926 @ 3x = 1284x2778
(this explains why for example iPhone 11 screenshots rendered at the native 2x aren't working, despite being above the 640 x 920 limit at 828x1792)
It should also be noted that saving a screenshot using the iOS Simulator often saves the image at less than 100% scale, which is why your simulator screenshots aren't acceptable either!
Hopefully this answer should provide a future-proof solution until the documentation gets updated properly!