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

本文从这篇文章修补而来
需要
#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",
        @"iPhone14,6":@"iPhone SE (3rd generation)",
        @"iPhone14,7":@"iPhone 14",
        @"iPhone14,8":@"iPhone 14 Plus",
        @"iPhone15,2":@"iPhone 14 Pro",
        @"iPhone15,3":@"iPhone 14 Pro Max",
        
        // 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",
        @"iPad13,16":@"iPad Air 5",
        @"iPad13,17":@"iPad Air 5",
        @"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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容