Objective-C & SWIFT
This is working on all version like iOS 6, iOS 7 and iOS 8 etc...
And updated for iPhone 6 & iPhone 6 Plus
-(void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
NSLog(@"iPhone Device%@",[self platformType:platform]);
free(machine);
}
- (NSString *) platformType:(NSString *)platform
{
if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G";
if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";
if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
if ([platform isEqualToString:@"iPhone3,3"]) return @"Verizon iPhone 4";
if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (GSM)";
if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (GSM+CDMA)";
if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)";
if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (GSM+CDMA)";
if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)";
if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (GSM+CDMA)";
if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";
if ([platform isEqualToString:@"iPhone8,4"]) return @"iPhone SE";
if ([platform isEqualToString:@"iPhone9,1"]) return @"iPhone 7";
if ([platform isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus";
if ([platform isEqualToString:@"iPhone9,3"]) return @"iPhone 7";
if ([platform isEqualToString:@"iPhone9,4"]) return @"iPhone 7 Plus";
if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
if ([platform isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";
if ([platform isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G";
if ([platform isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G";
if ([platform isEqualToString:@"iPad1,1"]) return @"iPad";
if ([platform isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)";
if ([platform isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)";
if ([platform isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)";
if ([platform isEqualToString:@"iPad2,4"]) return @"iPad 2 (WiFi)";
if ([platform isEqualToString:@"iPad2,5"]) return @"iPad Mini (WiFi)";
if ([platform isEqualToString:@"iPad2,6"]) return @"iPad Mini (GSM)";
if ([platform isEqualToString:@"iPad2,7"]) return @"iPad Mini (GSM+CDMA)";
if ([platform isEqualToString:@"iPad3,1"]) return @"iPad 3 (WiFi)";
if ([platform isEqualToString:@"iPad3,2"]) return @"iPad 3 (GSM+CDMA)";
if ([platform isEqualToString:@"iPad3,3"]) return @"iPad 3 (GSM)";
if ([platform isEqualToString:@"iPad3,4"]) return @"iPad 4 (WiFi)";
if ([platform isEqualToString:@"iPad3,5"]) return @"iPad 4 (GSM)";
if ([platform isEqualToString:@"iPad3,6"]) return @"iPad 4 (GSM+CDMA)";
if ([platform isEqualToString:@"iPad4,1"]) return @"iPad Air (WiFi)";
if ([platform isEqualToString:@"iPad4,2"]) return @"iPad Air (Cellular)";
if ([platform isEqualToString:@"iPad4,3"]) return @"iPad Air";
if ([platform isEqualToString:@"iPad4,4"]) return @"iPad Mini 2G (WiFi)";
if ([platform isEqualToString:@"iPad4,5"]) return @"iPad Mini 2G (Cellular)";
if ([platform isEqualToString:@"iPad4,6"]) return @"iPad Mini 2G";
if ([platform isEqualToString:@"iPad4,7"]) return @"iPad Mini 3 (WiFi)";
if ([platform isEqualToString:@"iPad4,8"]) return @"iPad Mini 3 (Cellular)";
if ([platform isEqualToString:@"iPad4,9"]) return @"iPad Mini 3 (China)";
if ([platform isEqualToString:@"iPad5,3"]) return @"iPad Air 2 (WiFi)";
if ([platform isEqualToString:@"iPad5,4"]) return @"iPad Air 2 (Cellular)";
if ([platform isEqualToString:@"AppleTV2,1"]) return @"Apple TV 2G";
if ([platform isEqualToString:@"AppleTV3,1"]) return @"Apple TV 3";
if ([platform isEqualToString:@"AppleTV3,2"]) return @"Apple TV 3 (2013)";
if ([platform isEqualToString:@"i386"]) return @"Simulator";
if ([platform isEqualToString:@"x86_64"]) return @"Simulator";
return platform;
}
this code is also AppStore safe.
SWIFT 3.2
override func viewDidLoad() {
super.viewDidLoad()
var sysInfo = utsname()
uname(&sysInfo)
let machine = Mirror(reflecting: sysInfo.machine)
let identifier = machine.children.reduce("") { identifier, element in
guard let value = element.value as? Int8, value != 0 else { return identifier }
return identifier + String(UnicodeScalar(UInt8(value)))
}
NSLog("Device Type ----> %@", self.platformType(platform: identifier as NSString));
print(self.platformType(platform: identifier as NSString))
}
func platformType(platform : NSString) -> NSString{
if platform.isEqual(to: "iPhone1,1") {
return "iPhone 1G"
}
else if platform.isEqual(to: "iPhone1,2"){
return "iPhone 3G"
}
else if platform.isEqual(to: "iPhone2,1"){
return "iPhone 3GS"
}
else if platform.isEqual(to: "iPhone3,1"){
return "iPhone 4"
}
else if platform.isEqual(to: "iPhone3,3"){
return "Verizon iPhone 4"
}
else if platform.isEqual(to: "iPhone4,1"){
return "iPhone 4S"
}
else if platform.isEqual(to: "iPhone5,1"){
return "iPhone 5 (GSM)"
}
else if platform.isEqual(to: "iPhone5,2"){
return "iPhone 5 (GSM+CDMA)"
}
else if platform.isEqual(to: "iPhone5,3"){
return "iPhone 5c (GSM)"
}
else if platform.isEqual(to: "iPhone5,4"){
return "iPhone 5c (GSM+CDMA)"
}
else if platform.isEqual(to: "iPhone6,1"){
return "iPhone 5s (GSM)"
}
else if platform.isEqual(to: "iPhone6,2"){
return "iPhone 5s (GSM+CDMA)"
}
else if platform.isEqual(to: "iPhone7,2"){
return "iPhone 6"
}
else if platform.isEqual(to: "iPhone7,1"){
return "iPhone 6 Plus"
}
else if platform.isEqual(to: "iPhone8,1"){
return "iPhone 6s"
}
else if platform.isEqual(to: "iPhone8,2"){
return "iPhone 6s Plus"
}
else if platform.isEqual(to: "iPhone8,4"){
return "iPhone SE"
}
else if platform.isEqual(to: "iPhone9,1"){
return "iPhone 7"
}
else if platform.isEqual(to: "iPhone9,2"){
return "iPhone 7 Plus"
}
else if platform.isEqual(to: "iPhone9,3"){
return "iPhone 7"
}
else if platform.isEqual(to: "iPhone9,4"){
return "iPhone 7 Plus"
}
else if platform.isEqual(to: "iPod1,1"){
return "iPod Touch 1G"
}
else if platform.isEqual(to: "iPod2,1"){
return "iPod Touch 2G"
}
else if platform.isEqual(to: "iPod3,1"){
return "iPod Touch 3G"
}
else if platform.isEqual(to: "iPod4,1"){
return "iPod Touch 4G"
}
else if platform.isEqual(to: "iPod5,1"){
return "iPod Touch 5G"
}
else if platform.isEqual(to: "iPad1,1"){
return "iPad"
}
else if platform.isEqual(to: "iPad2,1"){
return "iPad 2 (WiFi)"
}
else if platform.isEqual(to: "iPad2,2"){
return "iPad 2 (GSM)"
}
else if platform.isEqual(to: "iPad2,3"){
return "iPad 2 (CDMA)"
}
else if platform.isEqual(to: "iPad2,4"){
return "iPad 2 (WiFi)"
}
else if platform.isEqual(to: "iPad2,5"){
return "iPad Mini (WiFi)"
}
else if platform.isEqual(to: "iPad2,6"){
return "iPad Mini (GSM)"
}
else if platform.isEqual(to: "iPad2,7"){
return "iPad Mini (GSM+CDMA)"
}
else if platform.isEqual(to: "iPad3,1"){
return "iPad 3 (WiFi)"
}
else if platform.isEqual(to: "iPad3,2"){
return "iPad 3 (GSM+CDMA)"
}
else if platform.isEqual(to: "iPad3,3"){
return "iPad 3 (GSM)"
}
else if platform.isEqual(to: "iPad3,4"){
return "iPad 4 (WiFi)"
}
else if platform.isEqual(to: "iPad3,5"){
return "iPad 4 (GSM)"
}
else if platform.isEqual(to: "iPad3,6"){
return "iPad 4 (GSM+CDMA)"
}
else if platform.isEqual(to: "iPad4,1"){
return "iPad Air (WiFi)"
}
else if platform.isEqual(to: "iPad4,2"){
return "iPad Air (Cellular)"
}
else if platform.isEqual(to: "iPad4,3"){
return "iPad Air"
}
else if platform.isEqual(to: "iPad4,4"){
return "iPad Mini 2G (WiFi)"
}
else if platform.isEqual(to: "iPad4,5"){
return "iPad Mini 2G (Cellular)"
}
else if platform.isEqual(to: "iPad4,6"){
return "iPad Mini 2G";
}
else if platform.isEqual(to: "iPad4,7"){
return "iPad Mini 3 (WiFi)"
}
else if platform.isEqual(to: "iPad4,8"){
return "iPad Mini 3 (Cellular)"
}
else if platform.isEqual(to: "iPad4,9"){
return "iPad Mini 3 (China)"
}
else if platform.isEqual(to: "iPad5,3"){
return "iPad Air 2 (WiFi)"
}
else if platform.isEqual(to: "iPad5,4"){
return "iPad Air 2 (Cellular)"
}
else if platform.isEqual(to: "AppleTV2,1"){
return "Apple TV 2G"
}
else if platform.isEqual(to: "AppleTV3,1"){
return "Apple TV 3"
}
else if platform.isEqual(to: "AppleTV3,2"){
return "Apple TV 3 (2013)"
}
else if platform.isEqual(to: "i386"){
return "Simulator"
}
else if platform.isEqual(to: "x86_64"){
return "Simulator"
}
return platform
}