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?
Important Note:
Apple just released iOS 6.0 and the NDA has been lifted.
For developers who preemptively included code that referenced
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 methodadvertisingIdentifier. Here’s the apple docs on it: