Last active
November 2, 2017 02:54
-
-
Save xumeng/1d1d646d8c2109e5b698d349355944dd to your computer and use it in GitHub Desktop.
Basic code to get the Hardware Model of an iOS device in Objective-C. https://en.wikipedia.org/wiki/List_of_iOS_devices
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// #import "sys/utsname.h" | |
struct utsname systemInfo; | |
uname(&systemInfo); | |
NSString *deviceString = [NSString stringWithCString:systemInfo.machine | |
encoding:NSUTF8StringEncoding]; | |
//iPhone | |
if ([deviceString isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; | |
if ([deviceString isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; | |
if ([deviceString isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS"; | |
if ([deviceString isEqualToString:@"iPhone3,1"]) return @"iPhone 4"; | |
if ([deviceString isEqualToString:@"iPhone3,2"]) return @"Verizon iPhone 4"; | |
if ([deviceString isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; | |
if ([deviceString isEqualToString:@"iPhone5,1"]) return @"iPhone 5"; | |
if ([deviceString isEqualToString:@"iPhone5,2"]) return @"iPhone 5"; | |
if ([deviceString isEqualToString:@"iPhone5,3"]) return @"iPhone 5C"; | |
if ([deviceString isEqualToString:@"iPhone5,4"]) return @"iPhone 5C"; | |
if ([deviceString isEqualToString:@"iPhone6,1"]) return @"iPhone 5S"; | |
if ([deviceString isEqualToString:@"iPhone6,2"]) return @"iPhone 5S"; | |
if ([deviceString isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus"; | |
if ([deviceString isEqualToString:@"iPhone7,2"]) return @"iPhone 6"; | |
if ([deviceString isEqualToString:@"iPhone8,1"]) return @"iPhone 6s"; | |
if ([deviceString isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus"; | |
if ([deviceString isEqualToString:@"iPhone8,4"]) return @"iPhone SE"; | |
if ([deviceString isEqualToString:@"iPhone9,1"]) return @"iPhone 7"; | |
if ([deviceString isEqualToString:@"iPhone9,3"]) return @"iPhone 7"; | |
if ([deviceString isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus"; | |
if ([deviceString isEqualToString:@"iPhone9,4"]) return @"iPhone 7 Plus"; | |
if ([deviceString isEqualToString:@"iPhone10,1"]) return @"iPhone 8"; | |
if ([deviceString isEqualToString:@"iPhone10,4"]) return @"iPhone 8"; | |
if ([deviceString isEqualToString:@"iPhone10,2"]) return @"iPhone 8 Plus"; | |
if ([deviceString isEqualToString:@"iPhone10,5"]) return @"iPhone 8 Plus"; | |
if ([deviceString isEqualToString:@"iPhone10,3"]) return @"iPhone X"; | |
if ([deviceString isEqualToString:@"iPhone10,6"]) return @"iPhone X"; | |
//iPod | |
if ([deviceString isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G"; | |
if ([deviceString isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G"; | |
if ([deviceString isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G"; | |
if ([deviceString isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G"; | |
if ([deviceString isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G"; | |
if ([deviceString isEqualToString:@"iPod7,1"]) return @"iPod Touch 6G"; | |
//iPad | |
if ([deviceString isEqualToString:@"iPad1,1"]) return @"iPad"; | |
if ([deviceString isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)"; | |
if ([deviceString isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)"; | |
if ([deviceString isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)"; | |
if ([deviceString isEqualToString:@"iPad2,4"]) return @"iPad 2 (32nm)"; | |
if ([deviceString isEqualToString:@"iPad2,5"]) return @"iPad mini (WiFi)"; | |
if ([deviceString isEqualToString:@"iPad2,6"]) return @"iPad mini (GSM)"; | |
if ([deviceString isEqualToString:@"iPad2,7"]) return @"iPad mini (CDMA)"; | |
if ([deviceString isEqualToString:@"iPad3,1"]) return @"iPad 3(WiFi)"; | |
if ([deviceString isEqualToString:@"iPad3,2"]) return @"iPad 3(CDMA)"; | |
if ([deviceString isEqualToString:@"iPad3,3"]) return @"iPad 3(4G)"; | |
if ([deviceString isEqualToString:@"iPad3,4"]) return @"iPad 4 (WiFi)"; | |
if ([deviceString isEqualToString:@"iPad3,5"]) return @"iPad 4 (4G)"; | |
if ([deviceString isEqualToString:@"iPad3,6"]) return @"iPad 4 (CDMA)"; | |
if ([deviceString isEqualToString:@"iPad4,1"]) return @"iPad Air"; | |
if ([deviceString isEqualToString:@"iPad4,2"]) return @"iPad Air"; | |
if ([deviceString isEqualToString:@"iPad4,3"]) return @"iPad Air"; | |
if ([deviceString isEqualToString:@"iPad4,4"] || | |
[deviceString isEqualToString:@"iPad4,5"] || | |
[deviceString isEqualToString:@"iPad4,6"]) { | |
return @"iPad mini 2"; | |
} | |
if ([deviceString isEqualToString:@"iPad4,7"] || | |
[deviceString isEqualToString:@"iPad4,8"] || | |
[deviceString isEqualToString:@"iPad4,9"]) { | |
return @"iPad mini 3"; | |
} | |
if ([deviceString isEqualToString:@"iPad5,1"]) return @"iPad mini 4"; | |
if ([deviceString isEqualToString:@"iPad5,2"]) return @"iPad mini 4"; | |
if ([deviceString isEqualToString:@"iPad5,3"]) return @"iPad Air 2"; | |
if ([deviceString isEqualToString:@"iPad5,4"]) return @"iPad Air 2"; | |
if ([deviceString isEqualToString:@"iPad6,3"]) return @"iPad Pro 9.7-inch"; | |
if ([deviceString isEqualToString:@"iPad6,4"]) return @"iPad Pro 9.7-inch"; | |
if ([deviceString isEqualToString:@"iPad6,7"]) return @"iPad Pro 1G"; | |
if ([deviceString isEqualToString:@"iPad6,8"]) return @"iPad Pro 1G"; | |
if ([deviceString isEqualToString:@"iPad6,11"]) return @"iPad (2017)"; | |
if ([deviceString isEqualToString:@"iPad6,12"]) return @"iPad (2017)"; | |
if ([deviceString isEqualToString:@"iPad7,1"]) return @"iPad Pro 2G"; | |
if ([deviceString isEqualToString:@"iPad7,2"]) return @"iPad Pro 2G"; | |
if ([deviceString isEqualToString:@"iPad7,3"]) return @"iPad Pro 10.5-inch"; | |
if ([deviceString isEqualToString:@"iPad7,4"]) return @"iPad Pro 10.5-inch"; | |
if ([deviceString isEqualToString:@"i386"]) return @"Simulator"; | |
if ([deviceString isEqualToString:@"x86_64"]) return @"Simulator"; | |
return deviceString; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment