それは醜いですが、それが実際の物理的なメインディスプレイの解像度を解決するために私が見つけた唯一の解決策です(実行中のアプリとは無関係):
#import <sys/utsname.h>
bool getDeviceNativeResolution(CGSize& res) {
utsname si;
uname(&si);
if((0 == strncmp(si.machine, "iPod7", 5)) || (0 == strncmp(si.machine, "iPhone7", 7)))
res = CGSizeMake(1080, 1920);
else if((0 == strncmp(si.machine, "iPod6", 5)) || (0 == strncmp(si.machine, "iPhone6", 7)))
res = CGSizeMake(750, 1334);
else if((0 == strncmp(si.machine, "iPod5", 5)) || (0 == strncmp(si.machine, "iPhone5", 7)))
res = CGSizeMake(640, 1136);
else if((0 == strncmp(si.machine, "iPod4", 5)) || (0 == strncmp(si.machine, "iPhone4", 7)))
res = CGSizeMake(640, 960);
else
return false;
return true;
}