要識別用戶,首先就是要選擇一個標識符,經過這個標識符來識別這個用戶的設備(而不是用戶),這個標識符要可以保證一個設備上返回的值是同樣的,而且在其餘設備上不會出現相同的值。app
在iOS7以前,曾經有過不少方法來識別用戶的設備,從最原始的設備udid、mac地址,到被各廣告統計平臺普遍使用的開源方案OpenUDID。ide
但隨着AppStore開始拒絕接受使用udid的應用,到mac地址在iOS7上全部設備上都返回相同的值,再到iOS7上對剪貼板的限制,致使OpenUDID沒法被不一樣應用共享相同的值,註定了上面提到的這些id們不得不退出歷史的舞臺。spa
隨着iOS7快速佔據了半壁江山,設備id的控制權終於完全回到了Apple手中,同時也讓用戶可以把控本身的隱私,充分代表了是蘋果對用戶隱私保護的決心。code
好了,其實就一個問題:iOS7時代咱們用什麼來追蹤和識別用戶?xml
PS:塵埃落定,跟着Apple走,你們不用再猶豫了。開發
代碼:io
#import <AdSupport/AdSupport.h> NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
來源:iOS6.0及之後import
代碼:coding
NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
來源:iOS6.0及之後方法
設備惟一標識符(Unique Device Identifier)以前被各類國內外統計平臺,應用開發商普遍使用,後Apple從2013年05月01日起拒絕接受使用UDID的應用後,立斃!
每個網卡都有一個惟一的標識,即Mac地址,顯然用來標識一個手機是綽綽有餘的了,也有一些開源的方案也用到了它,國內UMTrack等也用它做爲過主id,隨着iOS7返回一樣的值後,不得不退隱江湖。
在Apple拒絕UDID後,OpenUDID做爲獨立於Apple的開源方案,被廣大的開發者所接受,各大統計廣告平臺都從UDID等方案切換到OpenUDID的方案(看來你們都不想徹底被Apple束縛啊),但不幸的事,一樣因爲iOS7對剪貼板的限制,致使同一個設備上應用間,沒法再共享一個OpenUDID,即OpenUDID做爲設備惟一標識的能力被大大削弱。也能夠看到隨着iOS7的來臨,各廣告平臺都迅速更新本身的SDK,來切換到蘋果的idfa的方案上來。
CFUUID、NSUUID等本身生成,本身存儲管理的就不細說啦。
這是推送用的令牌,用戶若是沒開推送,或者拒絕了,這個就沒有了!