iOS獲取APP橙弱、設(shè)備等信息

獲取App的版本號岩睁、App的build版本號钞脂、包名、App顯示名稱
/*獲取當前App的版本號信息*/
+ (NSString *)getAppVersion{
    NSBundle *currentBundle = [NSBundle mainBundle];
    NSDictionary *infoDictionary = [currentBundle infoDictionary];
    NSString *appVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
    return appVersion;
}

/*獲取當前App的build版本號信息*/
+ (NSString *)getAppBuildVersion{
    NSBundle *currentBundle = [NSBundle mainBundle];
    NSDictionary *infoDictionary = [currentBundle infoDictionary];
    NSString *appBuildVersion = [infoDictionary objectForKey:@"CFBundleVersion"];
    return appBuildVersion;
}

/*獲取當前App的包名信息*/
+ (NSString *)getAppBundleId{
    NSBundle *currentBundle = [NSBundle mainBundle];
    NSDictionary *infoDictionary = [currentBundle infoDictionary];
    NSString *appBundleId = [infoDictionary objectForKey:@"CFBundleIdentifier"];
    return appBundleId;
}

/*獲取當前App的包名信息*/
+ (NSString *)getAppDisplayName{
    NSBundle *currentBundle = [NSBundle mainBundle];
    NSDictionary *infoDictionary = [currentBundle infoDictionary];
    NSString *appDisplayName = [infoDictionary objectForKey:@"CFBundleDisplayName"];
    return appDisplayName;
}
手機系統(tǒng)版本捕儒、手機版本
/*設(shè)備系統(tǒng)版本
 例如:@"12.3.1"*/
+ (NSString *)deviceSystemVersion{
    UIDevice *device = [UIDevice currentDevice];
    return device.systemVersion;
}

/*設(shè)備系統(tǒng)名稱
 例如:@"iOS"*/
+ (NSString *)deviceSystemName{
    UIDevice *device = [UIDevice currentDevice];
    return device.systemName;
}

/*設(shè)備名稱
 例如:@"My iPhone"*/
+ (NSString *)deviceName{
    UIDevice *device = [UIDevice currentDevice];
    return device.name;
    
}

/*設(shè)備類型
 例如:@"iPhone", @"iPod touch"*/
+ (NSString *)deviceModel{
    UIDevice *device = [UIDevice currentDevice];
    return device.model;
}

+ (NSString *)deviceStringString{
    // 需要導(dǎo)入  #include <sys/utsname.h>
    struct utsname systemInfo;
    uname(&systemInfo);
    NSString * deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
    
 /*
    //也可以通過下面的方法獲取
    // 需要導(dǎo)入  #import <sys/sysctl.h>
    size_t size;
    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
    char *machine = (char*)malloc(size);
    sysctlbyname("hw.machine", machine, &size, NULL, 0);
    NSString * deviceString = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];
    free(machine);
    //*/

    // iphone
    if ([deviceString isEqualToString:@"iPhone1,1"])    return @"iPhone 2G";
    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:@"iPhone3,3"])    return @"iPhone 4 (CDMA)";
    
    if ([deviceString isEqualToString:@"iPhone4,1"])    return @"iPhone 4S"
        ;
    
    if ([deviceString isEqualToString:@"iPhone5,1"])    return @"iPhone 5";
    if ([deviceString isEqualToString:@"iPhone5,2"])    return @"iPhone 5 (GSM+CDMA)";
    if ([deviceString isEqualToString:@"iPhone5,3"])    return @"iPhone 5C (CDMA)";
    if ([deviceString isEqualToString:@"iPhone5,4"])    return @"iPhone 5C";
    
    if ([deviceString isEqualToString:@"iPhone6,1"])    return @"iPhone 5S (CDMA)";
    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,3"])    return @"iPhone SE";
    if ([deviceString isEqualToString:@"iPhone8,4"])    return @"iPhone SE";
    
    if ([deviceString isEqualToString:@"iPhone9,1"])    return @"iPhone 7";
    if ([deviceString isEqualToString:@"iPhone9,2"])    return @"iPhone 7 Plus";
    if ([deviceString isEqualToString:@"iPhone9,3"])    return @"iPhone 7";
    if ([deviceString isEqualToString:@"iPhone9,4"])    return @"iPhone 7 Plus";
    
    if ([deviceString isEqualToString:@"iPhone10,1"])    return @"iPhone 8";
    if ([deviceString isEqualToString:@"iPhone10,2"])    return @"iPhone 8 Plus";
    if ([deviceString isEqualToString:@"iPhone10,3"])    return @"iPhone X";
    if ([deviceString isEqualToString:@"iPhone10,4"])    return @"iPhone 8";
    if ([deviceString isEqualToString:@"iPhone10,5"])    return @"iPhone 8 Plus";
    if ([deviceString isEqualToString:@"iPhone10,6"])    return @"iPhone X";
    
    if ([deviceString isEqualToString:@"iPhone11,2"])    return @"iPhone XS";
    if ([deviceString isEqualToString:@"iPhone11,4"])    return @"iPhone XS Max";
    if ([deviceString isEqualToString:@"iPhone11,6"])    return @"iPhone XS Max";
    if ([deviceString isEqualToString:@"iPhone11,8"])    return @"iPhone XR";

    
    //ipod
    if ([deviceString isEqualToString:@"iPod1,1"])      return @"iPod Touch (1 Gen)";
    if ([deviceString isEqualToString:@"iPod2,1"])      return @"iPod Touch (2 Gen)";
    if ([deviceString isEqualToString:@"iPod3,1"])      return @"iPod Touch (3 Gen)";
    if ([deviceString isEqualToString:@"iPod4,1"])      return @"iPod Touch (4 Gen)";
    if ([deviceString isEqualToString:@"iPod5,1"])      return @"iPod Touch (5 Gen)";
    
    
    //ipad
    if ([deviceString isEqualToString:@"iPad1,1"])      return @"iPad";
    if ([deviceString isEqualToString:@"iPad1,2"])      return @"iPad 3G";
    
    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 (GSM+CDMA)";
    
    if ([deviceString isEqualToString:@"iPad3,1"])      return @"iPad 3 (WiFi)";
    if ([deviceString isEqualToString:@"iPad3,2"])      return @"iPad 3 (GSM+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 (GSM+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 (WiFi)";
    if ([deviceString isEqualToString:@"iPad5,2"])     return @"iPad Mini 4 (LTE)";
    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";
    if ([deviceString isEqualToString:@"iPad6,4"])return @"iPad Pro 9.7";
    if ([deviceString isEqualToString:@"iPad6,7"])return @"iPad Pro 12.9";
    if ([deviceString isEqualToString:@"iPad6,8"])return @"iPad Pro 12.9";
    if ([deviceString isEqualToString:@"iPad6,11"])return @"iPad 5 (WiFi)";
    if ([deviceString isEqualToString:@"iPad6,12"])return @"iPad 5 (Cellular)";
    
    if ([deviceString isEqualToString:@"iPad7,1"])return @"iPad Pro 12.9 inch 2nd gen (WiFi)";
    if ([deviceString isEqualToString:@"iPad7,2"])return @"iPad Pro 12.9 inch 2nd gen (Cellular)";
    if ([deviceString isEqualToString:@"iPad7,3"])return @"iPad Pro 10.5 inch (WiFi)";
    if ([deviceString isEqualToString:@"iPad7,4"])return @"iPad Pro 10.5 inch (Cellular)";
  
    //Simulator
    if ([deviceString isEqualToString:@"i386"])         return @"Simulator";
    if ([deviceString isEqualToString:@"x86_64"])       return @"Simulator";
    return deviceString;
}

\underline{utsname的結(jié)構(gòu)體定義如下:}

struct utsname {
char sysname[_SYS_NAMELEN]; /* [XSI] Name of OS /
char nodename[_SYS_NAMELEN]; /
[XSI] Name of this network node /
char release[_SYS_NAMELEN]; /
[XSI] Release level /
char version[_SYS_NAMELEN]; /
[XSI] Version level /
char machine[_SYS_NAMELEN]; /
[XSI] Hardware type */
};

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冰啃,一起剝皮案震驚了整個濱河市邓夕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阎毅,老刑警劉巖焚刚,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扇调,居然都是意外死亡矿咕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門狼钮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碳柱,“玉大人,你說我怎么就攤上這事熬芜×停” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵涎拉,是天一觀的道長瑞侮。 經(jīng)常有香客問我,道長鼓拧,這世上最難降的妖魔是什么半火? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮毁枯,結(jié)果婚禮上慈缔,老公的妹妹穿的比我還像新娘。我一直安慰自己种玛,他們只是感情好藐鹤,可當我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赂韵,像睡著了一般娱节。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祭示,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天肄满,我揣著相機與錄音,去河邊找鬼质涛。 笑死稠歉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的汇陆。 我是一名探鬼主播怒炸,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼毡代!你這毒婦竟也來了阅羹?” 一聲冷哼從身側(cè)響起勺疼,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捏鱼,沒想到半個月后执庐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡导梆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年轨淌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片问潭。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡猿诸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狡忙,到底是詐尸還是另有隱情梳虽,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布灾茁,位于F島的核電站窜觉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏北专。R本人自食惡果不足惜禀挫,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拓颓。 院中可真熱鬧语婴,春花似錦、人聲如沸驶睦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽场航。三九已至缠导,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溉痢,已是汗流浹背僻造。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留孩饼,地道東北人髓削。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像镀娶,于是被迫代替她去往敵國和親立膛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容