最近项目中需要获取用户所使用的机型,网上查了很多资料最新的也就是到iPhone 11系列的,苹果最近出的iPhone 12相关系列的都没包含在内。
偶然间浏览到一个网页上面列举了所有的苹果设备的机型信息,于是就把链接和我整理的代码贴出来,方便大家接入机型检测的功能!
首先要导入 #import <sys/utsname.h>
剩下的就是判断方法:
+ (NSString*)deviceType{
structutsnamesystemInfo;
uname(&systemInfo);
NSString *deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
//************************** iPhone ********************************************//
if([deviceModelisEqualToString:@"iPhone3,1"]) return@"iPhone 4";
if([deviceModelisEqualToString:@"iPhone3,2"]) return@"iPhone 4";
if([deviceModelisEqualToString:@"iPhone3,3"]) return@"iPhone 4";
if([deviceModelisEqualToString:@"iPhone4,1"]) return@"iPhone 4S";
if([deviceModelisEqualToString:@"iPhone5,1"]) return@"iPhone 5";
if ([deviceModel isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (GSM+CDMA)";
if ([deviceModel isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)";
if ([deviceModel isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (GSM+CDMA)";
if ([deviceModel isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)";
if ([deviceModel isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (GSM+CDMA)";
if([deviceModelisEqualToString:@"iPhone7,1"]) return@"iPhone 6 Plus";
if([deviceModelisEqualToString:@"iPhone7,2"]) return@"iPhone 6";
if([deviceModelisEqualToString:@"iPhone8,1"]) return@"iPhone 6s";
if ([deviceModel isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";
if([deviceModelisEqualToString:@"iPhone8,4"]) return@"iPhone SE";
// 日行两款手机型号均为日本独占,可能使用索尼FeliCa支付方案而不是苹果支付
if([deviceModelisEqualToString:@"iPhone9,1"]) return@"iPhone 7";
if([deviceModelisEqualToString:@"iPhone9,2"]) return@"iPhone 7 Plus";
if([deviceModelisEqualToString:@"iPhone9,3"]) return@"iPhone 7";
if([deviceModelisEqualToString:@"iPhone9,4"]) return@"iPhone 7 Plus";
if([deviceModelisEqualToString:@"iPhone10,1"]) return@"iPhone_8";
if([deviceModelisEqualToString:@"iPhone10,4"]) return@"iPhone_8";
if ([deviceModel isEqualToString:@"iPhone10,2"]) return @"iPhone_8_Plus";
if ([deviceModel isEqualToString:@"iPhone10,5"]) return @"iPhone_8_Plus";
if([deviceModelisEqualToString:@"iPhone10,3"]) return@"iPhone X";
if([deviceModelisEqualToString:@"iPhone10,6"]) return@"iPhone X";
if([deviceModelisEqualToString:@"iPhone11,8"]) return@"iPhone XR";
if([deviceModelisEqualToString:@"iPhone11,2"]) return@"iPhone XS";
if ([deviceModel isEqualToString:@"iPhone11,6"]) return @"iPhone XS Max";
if ([deviceModel isEqualToString:@"iPhone11,4"]) return @"iPhone XS Max";
if([deviceModelisEqualToString:@"iPhone12,1"]) return@"iPhone 11";
if ([deviceModel isEqualToString:@"iPhone12,3"]) return @"iPhone 11 Pro";
if ([deviceModel isEqualToString:@"iPhone12,5"]) return @"iPhone 11 Pro Max";
if ([deviceModel isEqualToString:@"iPhone12,8"]) return @"iPhone SE (2nd generation)";
if ([deviceModel isEqualToString:@"iPhone13,1"]) return @"iPhone 12 mini";
if([deviceModelisEqualToString:@"iPhone13,2"]) return@"iPhone 12";
if ([deviceModel isEqualToString:@"iPhone13,3"]) return @"iPhone 12 Pro";
if ([deviceModel isEqualToString:@"iPhone13,4"]) return @"iPhone 12 Pro Max";
//************************** ipad ********************************************//
if([deviceModelisEqualToString:@"iPod1,1"]) return@"iPod Touch 1G";
if([deviceModelisEqualToString:@"iPod2,1"]) return@"iPod Touch 2G";
if([deviceModelisEqualToString:@"iPod3,1"]) return@"iPod Touch 3G";
if([deviceModelisEqualToString:@"iPod4,1"]) return@"iPod Touch 4G";
if ([deviceModel isEqualToString:@"iPod5,1"]) return @"iPod Touch (5 Gen)";
if([deviceModelisEqualToString:@"iPad1,1"]) return@"iPad";
if([deviceModelisEqualToString:@"iPad1,2"]) return@"iPad 3G";
if([deviceModelisEqualToString:@"iPad2,1"]) return@"iPad 2 (WiFi)";
if([deviceModelisEqualToString:@"iPad2,2"]) return@"iPad 2";
if([deviceModelisEqualToString:@"iPad2,3"]) return@"iPad 2 (CDMA)";
if([deviceModelisEqualToString:@"iPad2,4"]) return@"iPad 2";
if([deviceModelisEqualToString:@"iPad2,5"]) return@"iPad Mini (WiFi)";
if([deviceModelisEqualToString:@"iPad2,6"]) return@"iPad Mini";
if ([deviceModel isEqualToString:@"iPad2,7"]) return @"iPad Mini (GSM+CDMA)";
if([deviceModelisEqualToString:@"iPad3,1"]) return@"iPad 3 (WiFi)";
if([deviceModelisEqualToString:@"iPad3,2"]) return@"iPad 3 (GSM+CDMA)";
if([deviceModelisEqualToString:@"iPad3,3"]) return@"iPad 3";
if([deviceModelisEqualToString:@"iPad3,4"]) return@"iPad 4 (WiFi)";
if([deviceModelisEqualToString:@"iPad3,5"]) return@"iPad 4";
if([deviceModelisEqualToString:@"iPad3,6"]) return@"iPad 4 (GSM+CDMA)";
if([deviceModelisEqualToString:@"iPad4,1"]) return@"iPad Air (WiFi)";
if ([deviceModel isEqualToString:@"iPad4,2"]) return @"iPad Air (Cellular)";
if ([deviceModel isEqualToString:@"iPad4,4"]) return @"iPad Mini 2 (WiFi)";
if ([deviceModel isEqualToString:@"iPad4,5"]) return @"iPad Mini 2 (Cellular)";
if([deviceModelisEqualToString:@"iPad4,6"]) return@"iPad Mini 2";
if([deviceModelisEqualToString:@"iPad4,7"]) return@"iPad Mini 3";
if([deviceModelisEqualToString:@"iPad4,8"]) return@"iPad Mini 3";
if([deviceModelisEqualToString:@"iPad4,9"]) return@"iPad Mini 3";
if ([deviceModel isEqualToString:@"iPad5,1"]) return @"iPad Mini 4 (WiFi)";
if([deviceModelisEqualToString:@"iPad5,2"]) return@"iPad Mini 4 (LTE)";
if([deviceModelisEqualToString:@"iPad5,3"]) return@"iPad Air 2";
if([deviceModelisEqualToString:@"iPad5,4"]) return@"iPad Air 2";
if([deviceModelisEqualToString:@"iPad6,3"]) return@"iPad Pro 9.7";
if([deviceModelisEqualToString:@"iPad6,4"]) return@"iPad Pro 9.7";
if([deviceModelisEqualToString:@"iPad6,7"]) return@"iPad Pro 12.9";
if([deviceModelisEqualToString:@"iPad6,8"]) return@"iPad Pro 12.9";
if ([deviceModel isEqualToString:@"iPad7,1"]) return @"iPad Pro (12.9-inch) (2nd generation)";
if ([deviceModel isEqualToString:@"iPad7,2"]) return @"iPad Pro (12.9-inch) (2nd generation)";
if ([deviceModel isEqualToString:@"iPad7,3"]) return @"iPad Pro (10.5-inch)";
if ([deviceModel isEqualToString:@"iPad7,4"]) return @"iPad Pro (10.5-inch)";
if ([deviceModel isEqualToString:@"iPad7,5"]) return @"iPad (6th generation)";
if ([deviceModel isEqualToString:@"iPad7,6"]) return @"iPad (6th generation)";
if ([deviceModel isEqualToString:@"iPad7,5"]) return @"iPad (6th generation)";
if ([deviceModel isEqualToString:@"iPad7,11"]) return @"iPad (7th generation)";
if ([deviceModel isEqualToString:@"iPad7,12"]) return @"iPad (7th generation)";
if ([deviceModel isEqualToString:@"iPad8,1"]) return @"iPad Pro (11-inch)";
if ([deviceModel isEqualToString:@"iPad8,2"]) return @"iPad Pro (11-inch)";
if ([deviceModel isEqualToString:@"iPad8,3"]) return @"iPad Pro (11-inch)";
if ([deviceModel isEqualToString:@"iPad8,4"]) return @"iPad Pro (11-inch)";
if ([deviceModel isEqualToString:@"iPad8,5"]) return @"iPad Pro (12.9-inch) (3rd generation)";
if ([deviceModel isEqualToString:@"iPad8,6"]) return @"iPad Pro (12.9-inch) (3rd generation)";
if ([deviceModel isEqualToString:@"iPad8,7"]) return @"iPad Pro (12.9-inch) (3rd generation)";
if ([deviceModel isEqualToString:@"iPad8,8"]) return @"iPad Pro (12.9-inch) (3rd generation)";
if ([deviceModel isEqualToString:@"iPad8,9"]) return @"iPad Pro (11-inch) (2nd generation)";
if ([deviceModel isEqualToString:@"iPad8,10"]) return @"iPad Pro (11-inch) (2nd generation)";
if ([deviceModel isEqualToString:@"iPad8,11"]) return @"iPad Pro (11-inch) (2nd generation)";
if ([deviceModel isEqualToString:@"iPad8,12"]) return @"iPad Pro (11-inch) (2nd generation)";
if ([deviceModel isEqualToString:@"iPad11,1"]) return @"iPad mini (5th generation)";
if ([deviceModel isEqualToString:@"iPad11,2"]) return @"iPad mini (5th generation)";
if ([deviceModel isEqualToString:@"iPad11,6"]) return @"iPad (8th generation)";
if ([deviceModel isEqualToString:@"iPad11,7"]) return @"iPad (8th generation)";
if([deviceModelisEqualToString:@"i386"]) return@"iPhone Simulator";
if([deviceModelisEqualToString:@"x86_64"]) return@"iPhone Simulator";
returndeviceModel;
}
参考文档:https://www.theiphonewiki.com/wiki/Models