获取iPhone常用名称(更新至iPhoneXR)

请求中都带设备名称,这样很方便根据日志定位问题,不但开发定位方便,运维也定位问题方便。技术型运维主要靠看日志和查询数据库来定位问题,运维能根据日志解决简单的用户操作错误问题,就是运维不能解决问题,也能根据日志和数据库中的信息定位出这个问题属于后台还是客户端的问题,这样可以减少定位是谁的问题的时间,这样能达到对开发尽量隔离的效果。客户端的很多问题很多和操作系统,设备型号有关,最好的是客户发送设备型号给服务器,由服务器解析是那种设备的常用名称,后台很容易更新数据库就能实时更新对应常用名称,而客户端更新对应关系要发版本到苹果商店的。你问用户你的手机是不是iPhone9,3,没几个用户能知道是那种具体设备的,你要是问用户你的手机手机是不是iPhone7,估计用户大都知道的,所以这种专业术语和常用语的转换是很有必要的。若服务器暂时没有时间做,客户端也可以自己这种转换。
iTunes识别信息:
在这里插入图片描述
具体实现文件:
UIDevice+BitInfo.h文件

#import <UIKit/UIKit.h>
#include <sys/sysctl.h>

@interface UIDevice (BitInfo)

//系统型号
+ (NSString *)bitinfo_systemType;

@end

UIDevice+BitInfo.m文件

#import "UIDevice+BitInfo.h"

@implementation UIDevice (BitInfo)

+ (NSString *)bitinfo_systemType
{
    static NSString *deviceName = nil;
    if (!deviceName) {
        size_t size;
        sysctlbyname("hw.machine", NULL, &size, NULL, 0);
        char *name = malloc(size);
        sysctlbyname("hw.machine", name, &size, NULL, 0);
        deviceName = [NSString stringWithCString:name encoding:NSUTF8StringEncoding];
        deviceName = [self trunToGeneralName:deviceName];
        free(name);
    }
    return deviceName;
}

+ (NSString *)trunToGeneralName:(NSString *)name
{
    if ([name isEqualToString:@"iPhone1,1"])    return @"iPhone1G";
    else if ([name isEqualToString:@"iPhone1,2"])    return @"iPhone3G";
    else if ([name isEqualToString:@"iPhone2,1"])    return @"iPhone3GS";
    else if ([name isEqualToString:@"iPhone3,1"])    return @"iPhone4";
    else if ([name isEqualToString:@"iPhone3,2"])    return @"VerizoniPhone4";
    else if ([name isEqualToString:@"iPhone4,1"])    return @"iPhone4S";
    else if ([name isEqualToString:@"iPhone5,2"])    return @"iPhone5";
    else if ([name isEqualToString:@"iPhone5,1"]||[name isEqualToString:@"iPhone5,2"])    return @"iPhone5";
    else if ([name isEqualToString:@"iPhone5,3"]||[name isEqualToString:@"iPhone5,4"])    return @"iPhone5C";
    else if ([name isEqualToString:@"iPhone6,1"])    return @"iPhone5S";
    else if ([name isEqualToString:@"iPhone6,2"])    return @"iPhone5S";
    else if ([name isEqualToString:@"iPhone7,1"])    return @"iPhone6Plus";
    else if ([name isEqualToString:@"iPhone7,2"])    return @"iPhone6";
    else if ([name isEqualToString:@"iPhone8,1"])    return @"iPhone6s";
    else if ([name isEqualToString:@"iPhone8,4"])    return @"iPhoneSE";
    else if ([name isEqualToString:@"iPhone8,2"])    return @"iPhone6sPlus";
    else if ([name isEqualToString:@"iPhone8,4"])    return @"iPhoneSE";
    else if ([name isEqualToString:@"iPhone9,1"])    return @"iPhone7";
    else if ([name isEqualToString:@"iPhone9,3"])    return @"iPhone7";
    else if ([name isEqualToString:@"iPhone9,2"])    return @"iPhone7PLus";
    else if ([name isEqualToString:@"iPhone9,4"])    return @"iPhone7PLus";
    else if ([name isEqualToString:@"iPhone10,1"] || [name isEqualToString:@"iPhone10,4"])    return @"iPhone8";
    else if ([name isEqualToString:@"iPhone10,2"] || [name isEqualToString:@"iPhone10,5"])    return @"iPhone8PLus";
    else if ([name isEqualToString:@"iPhone10,3"] || [name isEqualToString:@"iPhone10,6"])    return @"iPhoneX";
    else if ([name isEqualToString:@"iPhone11,4"])    return @"iPhoneXS";
    else if ([name isEqualToString:@"iPhone11,6"])    return @"iPhoneXS Max";
    else if ([name isEqualToString:@"iPhone11,8"])    return @"iPhoneXR";
    
    else if ([name isEqualToString:@"i386"])         return @"Simulator";
    else if ([name isEqualToString:@"x86_64"])       return @"Simulator";
    return name;
}

@end

若有新的手机要增加新的设备名称和常用名称的对照关系的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值