為了區分iPhone設備,就要用到iPhone的唯一標識符唯一標識符包括:UDID(唯一設備標識符)、identifierForVendor(供應商標識符)、advertisingIdentifier(廣告標識符)
一、設備的唯一設備識別符,移動廣告商和游戲網絡運營商往往需要通過UDID用來識別玩家用戶,並對用戶活動進行跟蹤。UDID與設備是一一對應的,使用UDID存在泄漏用戶隱私的風險,不夠安全。所以目前蘋果禁止使用UDID來定位用戶。
二、廣告標示符(IDFA-identifierForIdentifier)這是iOS 6中另外一個新的方法,advertisingIdentifier 是新框架AdSupport.framework的一部分。ASIdentifierManager單例提供了一個方法advertisingIdentifier,通過調用該方法會返回一個上面提到的NSUUID實例。
NSString *deviceIDFA = [[[ASIdentifierManager sharedManager]advertisingIdentifier]UUIDString];
返回示例: 68753A44-4D6F-1226-9C60-0050E4C00067
它能保證唯一性,但是可以在設置-》隱私-》廣告-》還原廣告標識符 里還原,這樣就會更改廣告標識符。廣告還有一個限制廣告跟蹤的按鈕,用戶可以選擇開啟。如果開啟的話就無法取到廣告標識符的值。
三、Vindor標示符 (IDFV-identifierForVendor)這種叫法也是在iOS 6中新增的,不過獲取這個IDFV的新方法被添加在已有的UIDevice類中。跟advertisingIdentifier一樣,該方法返回的是一個NSUUID對象。
相同的一個程序里面-相同的vindor-相同的設備,那么獲取到的這個屬性值就不會變。 相同的程序-相同的設備-不同的vindor,或者是相同的程序-不同的設備-無論是否相同的vindor,取到的這個屬性值就是不同的。在這里,還需要注意的一點就是:如果用戶卸載了同一個vendor對應的所有程序,然后在重新安裝同一個vendor提供的程序,此時identifierForVendor會被重置。
- IDFA: 適用於對外:例如廣告推廣,換量等跨應用的用戶追蹤等
- IDFV: 適用於對內:例如分析用戶在應用內的行為等
現在的做法是:使用KeyChain來保存獲取到的UUID(Universally Unique Identifier全球唯一標識符),這樣以后即使APP刪了再裝回來,也可以從KeyChain中讀取回來。讀取設備的UUID(Universally Unique Identifier)並通過KeyChain記錄。
