由于產品需求,往往我們需要采集系統名稱,系統版本之類的數據供服務端使用:
+ (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,這就是導致異常出現的原因。