[英]iOS6 UDID - What advantages does identifierForVendor have over identifierForAdvertising?
蘋果正在更改其iOS6的隱私設置,並棄用設備UUID(UDID)。 根據WWDC的演示文稿和文檔,在UIDevice
類中有兩個UDID的替代品:
-identifierForVendor
-identifierForAdvertising
在我看來, -identifierForVendor
不如-identifierForAdvertising
因為它將在上次從供應商處卸載應用程序並通過“擦除所有內容和設置”而重置。
沒有什么優勢-identifierForVendor
有超過-identifierForAdvertising
?
重要說明 :
蘋果剛剛發布了iOS 6.0,並且取消了保密協議。
對於搶先包含引用代碼的開發人員
[[UIDevice currentDevice] identifierForAdvertising]
這種方法還沒有被列入在iOS 6.如果你使用上面的方法,您的應用(最有可能)崩潰和被拒絕!
相反,蘋果創造了一個新的類ASIdentifierManager
,其中包括法advertisingIdentifier
。 這是上面的蘋果文檔 :
用戶可以限制在手機上使用廣告跟蹤。 請參閱“設置”>“常規”>“關於”>“廣告”下的“ 退出”機制文章 。
新ASIdentifierManager
類有一個屬性advertisingTrackingEnabled
,它返回如果用戶具有有限的廣告追蹤true或false根據。 即使設備選擇退出, advertisingIdentifier
屬性返回設備的廣告標識符,但如果用戶選擇退出,則不應使用該標識符。
因此,identifierForVendor的優勢在於,無論用戶選擇加入還是退出廣告跟蹤,您始終可以訪問並有權使用此ID在手機上使用。
我懷疑,如果您使用identifierForAdvertising
進行與廣告無關的任何事情,Apple只會拒絕您的應用程序(即,即使您不是廣告網絡,還是將identifierForAdvertising
發送到您自己的服務器,或者如果您將identifierForAdvertising
發送到與可能識別個人身份的其他數據進行相同的請求)。
如果我的猜想是正確的,則identifierForVendor
優於identifierForAdvertising
的優勢在於,它不會使您的應用程序被拒絕。
它們是兩個不同的id,分別用於兩個不同的目的。 我認為IdentifierForVendor將是用於執行要求應用程序鏈接到特定用戶/設備的事情的人,例如提供推送通知和更新用戶的應用程序數據服務器端(例如他們的分數或其他任何存儲的數據)他們)。
identifierForAdvertising應該用於諸如定向廣告之類的事情,並且還應用於檢查特定廣告活動的有效性(檢查以查看哪些設備由於特定廣告而安裝了應用程序)。
使用VendorID 。 這是一篇很有啟發性的文章http://www.doubleencore.com/2013/04/unique-identifiers/
要基於iOS 6中設備的唯一標識符創建uniqueString:
#import <AdSupport/ASIdentifierManager.h>
NSString *uniqueString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
NSLog(@"uniqueString: %@", uniqueString);
這些API的設計是如此糟糕,顯然可以說-Apple不想讓我們識別用戶設備。
只需查看identifierForVendor描述即可。
如果用戶刪除同一供應商的所有應用程序,則將其刪除。 :(不可靠-可能會返回nil(如果發生這種情況,文檔建議會“等待”一段時間。
他們沒有使用顯而易見的解決方案,該解決方案可以隨時使用,並且不依賴於安裝/刪除-返回與Team ID串聯的內部硬件設備ID的SHA-1(或任何其他哈希值)。
identifierForAdvertising
在跟蹤方面可能更好,但可能會受到用戶當前或將來的選擇退出。 另一方面, identifierForVendor
不太可能成為用戶的主題。
要知道的重要一點是,只能將identifierForVendor的備份還原到同一設備上。 如果將備份還原到其他設備,則會清除標識符。
用戶可以隨時在“設置”中更改identifierForAdvertising,重新安裝應用程序后,如果該供應商的設備上沒有其他應用程序,則identifierForVendor也會更改。
這是獲取或永久交叉安裝設備標識符的替代方案和最佳解決方案:
說明: https : //blog.onliquid.com/persistent-device-unique-identifier-ios-keychain/
代碼: https : //gist.github.com/miguelcma/e8f291e54b025815ca46
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.