由于产品需求,往往我们需要采集系统名称,系统版本之类的数据供服务端使用:
+ (NSString *)systemName
{
static NSString *systemName;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
systemName = [UIDevice currentDevice].systemName;
});
return systemName;
}
之前,通过以上方法在 iPhone 和 iPad 上获取的系统名称一直是 iOS,服务端也依据这个区分设备适配一些功能。
然而,最新一些功能再 iPad 上出了异常,一直没有头绪,猜测和系统版本有关。
随后把我们的 iPad 测试机升级了 iOS 15 系统之后发现 iPad 获取系统名称为 iPadOS ,而服务端只判断了 iOS,这就是导致异常出现的原因。