privacy udid是什麼 - iOS6 UDID-identifierForVendor具有優於identifierForAdvertising的優勢嗎?





swift objective (9)


如果設備上沒有更多的應用程序,用戶可以在設置中更改identifierForAdvertising,重新安裝應用程序後更改identifierForVendor。

這是替代方案,也是獲得或持久性的最佳解決方案,交叉安裝設備標識符:

說明: https://blog.onliquid.com/persistent-device-unique-identifier-ios-keychain/https://blog.onliquid.com/persistent-device-unique-identifier-ios-keychain/

代碼: https://gist.github.com/miguelcma/e8f291e54b025815ca46https://gist.github.com/miguelcma/e8f291e54b025815ca46

Apple正在更改其iOS6的隱私設置並且不贊成使用設備UUID(UDID)。 根據WWDC演示文稿和文檔, UIDevice類中有兩個UDID替換項:

-identifierForVendor

  • 來自同一開發人員的應用程序之間的ID相同。
  • 刪除該團隊ID的最後一個應用後刪除。
  • 備份。

-identifierForAdvertising

  • 設備的獨特之處。
  • 適用於所有應用程序; 用於廣告 - iAd已從iOS 6及更高版本的UDID轉換而來。
  • 使用“清除所有內容和設置”進行重置。
  • 備份。

在我看來, -identifierForVendor不如-identifierForAdvertising因為它將在最後一次從供應商卸載應用程序時被重置,並被“清除所有內容和設置”。

-identifierForVendor具有over -identifierForAdvertising優點嗎?




重要提示

蘋果剛剛發布了iOS 6.0,並且NDA已經取消。

對於預先包含引用的代碼的開發人員

[[UIDevice currentDevice] identifierForAdvertising]

此方法並未包含在iOS 6中。如果您使用上述方法,您的應用程序將(最可能)崩潰並被拒絕!

相反,Apple創建了一個新類ASIdentifierManager ,其中包含方法advertisingIdentifier 。 這裡是蘋果的文檔




我懷疑,如果您將identifierForAdvertising用於與廣告無關的任何事情(例如,如果您將identifierForAdvertising ForAdvertising發送到您自己的服務器(即使您不是廣告網絡),或者如果您將identifierForAdvertising與其他數據相同的請求可能會識別個人)。

如果我的懷疑是正確的,那麼identifierForVendor優於identifierForAdvertising的優點是它不會讓您的應用程序被拒絕。




identifierForAdvertising在跟踪方面可能更勝一籌,但可能會受到用戶當前或未來的選擇退出。 另一方面, identifierForVendor不太可能是用戶的主題。




用戶可以限制在手機上使用廣告跟踪。 請參閱設置>常規>關於>廣告下關於選擇退出機制的文章

新的ASIdentifierManager類有一個屬性ASIdentifierManager ,根據用戶是否有限的廣告跟踪,該屬性返回true或false。 即使設備的廣告標識符由advertisingIdentifier屬性返回,而不管退出,但如果用戶選擇退出,則不應使用該標識符。

因此,identifierForVendor的優勢在於,無論用戶選擇加入還是退出廣告跟踪,您都可以隨時訪問並有權使用此ID。




這些API的設計非常糟糕,很明顯,蘋果不希望我們識別用戶設備。

只要看看identifierForVendor的描述。

如果用戶從同一供應商清除所有應用程序,則會被刪除。 :(這是不可靠的 - 可以返回零(文檔建議“等待”一段時間,如果發生這種情況。:(

他們沒有使用明顯的解決方案,該解決方案隨時可用,不依賴於安裝/刪除 - 返回與團隊ID級聯的內部硬件設備ID的SHA-1(或任何其他散列)。




重要的是要知道,identifierForVendor的備份只能恢復到同一個設備。 如果備份恢復到差異設備,標識符將被清除。







如果你想用新數字來推算前一個數字(比如股票或其他東西),那麼它就會數起來:

let animation = CATransition()
animation.removedOnCompletion = true
animation.duration = 0.2
animation.type = kCATransitionPush
animation.subtype = newValue > value ? kCATransitionFromTop : kCATransitionFromBottom
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)
valueLabel.layer.addAnimation(animation, forKey:"changeTextTransition")






ios privacy udid ios6