Tihom Tihom - 6 months ago 21
iOS Question

iOS6 UDID - What advantages does identifierForVendor have over identifierForAdvertising?

Apple is changing their privacy settings for iOS6 and deprecating device UUIDs (UDIDs). According to a WWDC presentation and the docs there are two replacements for the UDIDs, both in the

UIDevice
class:

-identifierForVendor




  • ID that is identical between apps from the same developer.

  • Erased with removal of the last app for that Team ID.

  • Backed up.



-identifierForAdvertising




  • Unique to the device.

  • Available to all applications; used for advertising — iAd has converted from UDID for iOS 6 and later.

  • Reset with "Erase All Content & Settings".

  • Backed up.



It seems to me that
-identifierForVendor
is inferior to
-identifierForAdvertising
since it would get reset on last uninstall of an app from a vendor and by "erase all contents & settings".

What advantages does
-identifierForVendor
have over
-identifierForAdvertising
?

Answer

Important Note:

Apple just released iOS 6.0 and the NDA has been lifted.

For developers who preemptively included code that referenced

[[UIDevice currentDevice] identifierForAdvertising]

this method has NOT been included on iOS 6. If you use the above method, your app will (most likely) crash and be rejected!

Instead, Apple has created a new class ASIdentifierManager , which includes the method advertisingIdentifier. Here's the apple docs on it: