一哑梳、iOS7以后不能獲取手機IMEI
iOS 2.0版本以后UIDevice提供一個獲取設(shè)備唯一標(biāo)識符的方法uniqueIdentifier劲阎,通過該方法我們可以獲取設(shè)備的序列號,
這個也是目前為止唯一可以確認(rèn)唯一的標(biāo)示符涧衙。好景不長哪工,因為該唯一標(biāo)識符與手機一一對應(yīng),蘋果覺得可能會泄露用戶隱私弧哎,
所以在iOS5之后該方法就被廢棄掉了雁比,因此iOS5以后不能獲取手機IMEI,但是也是可以通過私有API獲取手機的IMEI號的撤嫩,
但是通過蘋果私有API獲取IMEI號偎捎,上架蘋果商店會被拒掉的。
二序攘、iOS7以后不能通過獲得MAC地址來標(biāo)示手機唯一
應(yīng)用在iOS6及以下時茴她,可以正確取道Mac地址,在iOS7上程奠,會返回固定值丈牢。
這樣帶來的問題是無法區(qū)分具體的iOS設(shè)備,有些產(chǎn)品就非常難搞了瞄沙,目前沒有找到可以區(qū)分不同iOS設(shè)備的方法己沛。
測試過mac地址,確實會返回固定值02:00:00:00:00:00
三距境、可以通過獲取identifierForVendor和identifierForAdvertising來標(biāo)示手機
1.獲取identifierForVendor
NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];
NSLog(@"identifierForVendor == %@",identifierForVendor);
2.獲取identifierForAdvertising(廣告標(biāo)示符)
a.添加框架
AdSupport.framework
b.添加頭文件
#import <AdSupport/ASIdentifierManager.h>
c.使用語句
NSString *identifierForAdvertising = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
NSLog(@"identifierForAdvertising == %@",identifierForAdvertising);
d.advertisingIdentifier介紹
廣告標(biāo)示符是由系統(tǒng)存儲著的申尼。不過即使這是由系統(tǒng)存儲的,但是有幾種情況下垫桂,會重新生成廣告標(biāo)示符师幕。如果用戶完全重置系統(tǒng)((設(shè)置程序 ->通用 -> 還原 ->還原位置與隱私),這個廣告標(biāo)示符會重新生成诬滩。
另外如果用戶明確的還原廣告(設(shè)置程序->通用 -> 關(guān)于本機 ->廣告 ->還原廣告標(biāo)示符)霹粥,那么廣告標(biāo)示符也會重新生成灭将。
關(guān)于廣告標(biāo)示符的還原,有一點需要注意:如果程序在后臺運行后控,此時用戶“還原廣告標(biāo)示符”宗侦,然后再回到程序中,此時獲取廣告標(biāo)示符并不會立即獲得還原后的標(biāo)示符忆蚀。必須要終止程序,然后再重新啟動程序姑裂,才能獲得還原后的廣告標(biāo)示符馋袜。之所以會這樣,因為ASIdentifierManager是一個單例舶斧。