iOS唯一標(biāo)識的歷史歷程
iOS 6.0
在iOS6.0以前,是使用uniqueIdentifier來獲取手機(jī)的唯一標(biāo)識,后來蘋果感覺這樣會泄露用戶隱藏,就封掉了這個方法;
iOS 6.0系統(tǒng)新增了兩個用于替換uniqueIdentifier的接口
- identifierForVendor
- advertisingIdentifier
但是 identifierForVendor 會在卸載后再重裝,就會改變,所以就不能當(dāng)做手機(jī)的唯一標(biāo)識使用。
后來,未來解決問題,程序員們想到了使用WiFi的mac地址來作為手機(jī)的唯一標(biāo)識。很歡樂的使用著·······
但是············
iOS 7.0
iOS 7中蘋果再一次無情的封殺mac地址,使用之前的方法獲取到的mac地址全部都變成了02:00:00:00:00:00
聰明的程序員們,想到了用廣告標(biāo)示符作為手機(jī)唯一的標(biāo)識。但是·······
只要用戶重置了廣告標(biāo)示符以后,還是會獲得一個新的廣告標(biāo)識。這樣一來,廣告標(biāo)識付也不可以用了。。。。
這下該如何是好呢?
接下來就是介紹解決方法的時候了
使用KeyChain來保存獲取到的唯一標(biāo)示符呢,這樣以后即使APP刪了再裝回來,也可以從KeyChain中讀取回來,當(dāng)然也不會害怕重置了廣告標(biāo)示符
FCUUID
在github搜一下UDID,發(fā)現(xiàn)這個東東的星星最多??磥硪幌聄eadme,添加到自己的項目中測試,可用
設(shè)備標(biāo)識在 完全抹掉iPhone的時候,仍然會變。學(xué)長只能幫到這了····
使用方法
1、點擊下載所需文件
因為FCUUID需要依靠該作者的另外一個文件。所以這里有就把所有的文件放在了一起,供大家下載使用。
作者 githun地址 https://github.com/fabiocaccamo/FCUUID
2、在項目中添加 Security.framework
3、導(dǎo)入頭文件
#import "FCUUID.h"
接下來就可以歡快的使用了
FCUUID提供的類方法
// 每次運行應(yīng)用都會變
+(NSString *)uuid;
//changes each time (no persistent), but allows to keep in memory more temporary uuids
+(NSString *)uuidForKey:(id<NSCopying>)key;
// 每次運行應(yīng)用都會變
+(NSString *)uuidForSession;
// 重新安裝的時候會變
+(NSString *)uuidForInstallation;
// 卸載后重裝會變
+(NSString *)uuidForVendor;
// 抹掉iPhone的時候才會變,適合做唯一標(biāo)識
+(NSString *)uuidForDevice;
個人測試數(shù)據(jù)
