美文网首页iOS开发转载iOS日常开发
iOS获取设备型号(更新至2021.12)

iOS获取设备型号(更新至2021.12)

作者: 帝默 | 来源:发表于2021-06-25 09:41 被阅读0次

本文从这篇文章修补而来
需要
#import <sys/utsname.h>
接下来是方法

+ (NSString *)getDeviceIdentifier {
    // 需要#import "sys/utsname.h"
    struct utsname systemInfo;
    uname(&systemInfo);
    // 获取设备标识Identifier
    NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
    
    if (_antique == -1) {
        NSString *num = [platform componentsSeparatedByString:@","].firstObject;
        int minNum;
        //iPhone和iPad之外的不考虑
        if ([platform containsString:@"iPhone"]) {
            num = [num stringByReplacingOccurrencesOfString:@"iPhone" withString:@""];
            minNum = 9;//iPhone 7
        } else {
            num = [num stringByReplacingOccurrencesOfString:@"iPad" withString:@""];
            minNum = 6;//第一代iPad Pro
        }
        _antique = num.intValue < minNum;
    }
    
    NSDictionary *dic = @{
        // iPhone
        @"iPhone1,1":@"iPhone 2G",
        @"iPhone1,2":@"iPhone 3G",
        @"iPhone2,1":@"iPhone 3GS",
        @"iPhone3,1":@"iPhone 4",
        @"iPhone3,2":@"iPhone 4",
        @"iPhone3,3":@"iPhone 4",
        @"iPhone4,1":@"iPhone 4S",
        @"iPhone5,1":@"iPhone 5",
        @"iPhone5,2":@"iPhone 5",
        @"iPhone5,3":@"iPhone 5c",
        @"iPhone5,4":@"iPhone 5c",
        @"iPhone6,1":@"iPhone 5s",
        @"iPhone6,2":@"iPhone 5s",
        @"iPhone7,1":@"iPhone 6 Plus",
        @"iPhone7,2":@"iPhone 6",
        @"iPhone8,1":@"iPhone 6s",
        @"iPhone8,2":@"iPhone 6s Plus",
        @"iPhone8,4":@"iPhone SE",
        @"iPhone9,1":@"iPhone 7",
        @"iPhone9,3":@"iPhone 7",
        @"iPhone9,2":@"iPhone 7 Plus",
        @"iPhone9,4":@"iPhone 7 Plus",
        @"iPhone10,1":@"iPhone 8",
        @"iPhone10,4":@"iPhone 8",
        @"iPhone10,2":@"iPhone 8 Plus",
        @"iPhone10,5":@"iPhone 8 Plus",
        @"iPhone10,3":@"iPhone X",
        @"iPhone10,6":@"iPhone X",
        @"iPhone11,2":@"iPhone XS",
        @"iPhone11,6":@"iPhone XS MAX",
        @"iPhone11,8":@"iPhone XR",
        @"iPhone12,1":@"iPhone 11",
        @"iPhone12,3":@"iPhone 11 Pro",
        @"iPhone12,5":@"iPhone 11 Pro Max",
        @"iPhone12,8":@"iPhone SE (2nd generation)",
        @"iPhone13,1":@"iPhone 12 mini",
        @"iPhone13,2":@"iPhone 12",
        @"iPhone13,3":@"iPhone 12 Pro",
        @"iPhone13,4":@"iPhone 12 Pro Max",
        @"iPhone14,2":@"iPhone 13 Pro",
        @"iPhone14,3":@"iPhone 13 Pro Max",
        @"iPhone14,4":@"iPhone 13 mini",
        @"iPhone14,5":@"iPhone 13",
        
        // iPod
        @"iPod1,1":@"iPod Touch 1",
        @"iPod2,1":@"iPod Touch 2",
        @"iPod3,1":@"iPod Touch 3",
        @"iPod4,1":@"iPod Touch 4",
        @"iPod5,1":@"iPod Touch 5",
        @"iPod7,1":@"iPod Touch 6",
        @"iPod9,1":@"iPod Touch 7",
        
        // iPad
        @"iPad1,1":@"iPad 1",
        @"iPad2,1":@"iPad 2",
        @"iPad2,2":@"iPad 2",
        @"iPad2,3":@"iPad 2",
        @"iPad2,4":@"iPad 2",
        @"iPad2,5":@"iPad Mini 1",
        @"iPad2,6":@"iPad Mini 1",
        @"iPad2,7":@"iPad Mini 1",
        @"iPad3,1":@"iPad 3",
        @"iPad3,2":@"iPad 3",
        @"iPad3,3":@"iPad 3",
        @"iPad3,4":@"iPad 4",
        @"iPad3,5":@"iPad 4",
        @"iPad3,6":@"iPad 4",
        @"iPad4,1":@"iPad Air",
        @"iPad4,2":@"iPad Air",
        @"iPad4,3":@"iPad Air",
        @"iPad4,4":@"iPad Mini 2",
        @"iPad4,5":@"iPad Mini 2",
        @"iPad4,6":@"iPad Mini 2",
        @"iPad4,7":@"iPad mini 3",
        @"iPad4,8":@"iPad mini 3",
        @"iPad4,9":@"iPad mini 3",
        @"iPad5,1":@"iPad mini 4",
        @"iPad5,2":@"iPad mini 4",
        @"iPad5,3":@"iPad Air 2",
        @"iPad5,4":@"iPad Air 2",
        @"iPad6,3":@"iPad Pro (9.7-inch)",
        @"iPad6,4":@"iPad Pro (9.7-inch)",
        @"iPad6,7":@"iPad Pro (12.9-inch)",
        @"iPad6,8":@"iPad Pro (12.9-inch)",
        @"iPad6,11":@"iPad 5",
        @"iPad6,12":@"iPad 5",
        @"iPad7,1":@"iPad Pro (12.9-inch) 2nd",
        @"iPad7,2":@"iPad Pro (12.9-inch) 2nd",
        @"iPad7,3":@"iPad Pro (10.5-inch)",
        @"iPad7,4":@"iPad Pro (10.5-inch)",
        @"iPad7,5":@"iPad 6",
        @"iPad7,6":@"iPad 6",
        @"iPad7,11":@"iPad 7",
        @"iPad7,12":@"iPad 7",
        @"iPad8,1":@"iPad Pro (11-inch) ",
        @"iPad8,2":@"iPad Pro (11-inch) ",
        @"iPad8,3":@"iPad Pro (11-inch) ",
        @"iPad8,4":@"iPad Pro (11-inch) ",
        @"iPad8,5":@"iPad Pro (12.9-inch) 3rd",
        @"iPad8,6":@"iPad Pro (12.9-inch) 3rd",
        @"iPad8,7":@"iPad Pro (12.9-inch) 3rd",
        @"iPad8,8":@"iPad Pro (12.9-inch) 3rd",
        @"iPad8,9":@"iPad Pro (11-inch) 2nd",
        @"iPad8,10":@"iPad Pro (11-inch) 2nd",
        @"iPad8,11":@"iPad Pro (12.9-inch) 4th",
        @"iPad8,12":@"iPad Pro (12.9-inch) 4th",
        @"iPad11,1":@"iPad mini 5",
        @"iPad11,2":@"iPad mini 5",
        @"iPad11,3":@"iPad Air 3",
        @"iPad11,4":@"iPad Air 3",
        @"iPad11,6":@"iPad 8",
        @"iPad11,7":@"iPad 8",
        @"iPad12,1":@"iPad 9",
        @"iPad12,2":@"iPad 9",
        @"iPad13,1":@"iPad Air 4",
        @"iPad13,2":@"iPad Air 4",
        @"iPad13,4":@"iPad Pro (11-inch) 3rd",
        @"iPad13,5":@"iPad Pro (11-inch) 3rd",
        @"iPad13,6":@"iPad Pro (11-inch) 3rd",
        @"iPad13,7":@"iPad Pro (11-inch) 3rd",
        @"iPad13,8":@"iPad Pro (12.9-inch) 5th",
        @"iPad13,9":@"iPad Pro (12.9-inch) 5th",
        @"iPad13,10":@"iPad Pro (12.9-inch) 5th",
        @"iPad13,11":@"iPad Pro (12.9-inch) 5th",
        @"iPad14,1":@"iPad mini 6",
        @"iPad14,2":@"iPad mini 6",
        
        // 其他
        @"i386":@"iPhone Simulator",
        @"x86_64":@"iPhone Simulator",
    };
    platform = dic[platform] ?: platform;
    
    return platform;
}

对照网址:https://www.theiphonewiki.com/wiki/Models#iPhone

相关文章

网友评论

    本文标题:iOS获取设备型号(更新至2021.12)

    本文链接:https://www.haomeiwen.com/subject/ldvnyltx.html