由于產(chǎn)品需求,往往我們需要采集系統(tǒng)名稱,系統(tǒng)版本之類的數(shù)據(jù)供服務(wù)端使用:
+ (NSString *)systemName
{
static NSString *systemName;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
systemName = [UIDevice currentDevice].systemName;
});
return systemName;
}
之前,通過以上方法在 iPhone 和 iPad 上獲取的系統(tǒng)名稱一直是 iOS,服務(wù)端也依據(jù)這個(gè)區(qū)分設(shè)備適配一些功能。
然而,最新一些功能再 iPad 上出了異常,一直沒有頭緒,猜測和系統(tǒng)版本有關(guān)。
隨后把我們的 iPad 測試機(jī)升級了 iOS 15 系統(tǒng)之后發(fā)現(xiàn) iPad 獲取系統(tǒng)名稱為 iPadOS ,而服務(wù)端只判斷了 iOS,這就是導(dǎo)致異常出現(xiàn)的原因。