Полагаю, вам нужно захватить окно UIView / UIWindow с разрешением сетчатки (960x640 или 2048x1536). Использование UIGraphicsBeginImageContextWithOptions и установка его параметра масштаба 0.0f делает его захват в собственном разрешении (сетчатка для iPhone 4 и более поздних версий или iPad 3).
Этот код захватывает ваш UIView в собственном разрешении
CGRect rect = [captureView bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[captureView.layer renderInContext:context];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Этот код делает то же самое для полного экрана (окно ключа)
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
CGRect rect = [keyWindow bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[keyWindow.layer renderInContext:context];
UIImage *capturedScreen = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Это сохраняет UIImage в формате jpg с95% качество в папке документов приложения
NSString *imagePath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/capturedImage.jpg"]];
[UIImageJPEGRepresentation(capturedImage, 0.95) writeToFile:imagePath atomically:YES];