有很多工程和框架都使用這個方法來生成唯壹的設備ID。比如說ODIN。然而,蘋果並不希望有人通過MAC地址來分辨用戶,所以如果在iOS7系統上查詢MAC地址,它現在只會返回02:00:00:00:00:00。
現在蘋果明確的表明應該使用-[UIDevice identifierForVendor]或是-[ASIdentifierManager advertisingIdentifier]來作為妳框架和應用的唯壹標示符。坦白的來說,應對這些變化也不是那麽的難,見以下代碼片段:
NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];
NSString *identifierForAdvertising = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
每種方法都適配壹種特別的用法:
identifierForVendor對供應商來說是唯壹的壹個值,也就是說,由同壹個公司發行的的app在相同的設備上運行的時候都會有這個相同的標識符。然而,如果用戶刪除了這個供應商的app然後再重新安裝的話,這個標識符就會不壹致。
advertisingIdentifier會返回給在這個設備上所有軟件供應商相同的 壹個值,所以只能在廣告的時候使用。這個值會因為很多情況而有所變化,比如說用戶初始化設備的時候便會改變。