Search code examples
iosprivacyudidios6

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?


Solution

  • 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: