As Apple Sets Out to Deprecate UDIDs, Developers Look for Alternatives


By Kim-Mai Cutler

Amid privacy concerns, Apple said it will deprecate unique device ID numbers in the next version of iOS. The move might create some temporary complications for developers and ad networks that need to keep track of which apps consumers use.

Unique device IDs, or UDIDs, have been used by developers and third-party advertising networks to target consumers. Mobile advertising companies would use UDIDs to keep track of which apps people had or didn’t have, so they wouldn’t promote an app to a consumer that they already own. On top of that, by keeping track of the collection of apps a user has downloaded, an ad network could understand a person’s interests or infer their gender or age.

Unlike other types of ID numbers that web-based services use, UDIDs are tied to a physical device that people carry around with them everywhere and they can’t be cleared or reset so long as consumers keep using the same device. This raised privacy concerns from national media outlets like The Wall Street Journal, which did a series of investigations late last year that showed that many prominent apps would share personal information about users like their location, age and gender with other companies.

While Apple didn’t explicitly say what prompted the move, it understandably would want to allay these privacy concerns. Apple is instead asking developers to create unique identifiers that work specifically with their apps (see below). Keep in mind that it may take some time before UDIDs are fully wound down as some deprecated features in iOS 3.0 are still working today.


An alphanumeric string unique to each device based on various hardware details. (read-only) (Deprecated in iOS 5.0. Instead, create a unique identifier specific to your app.)

@property (nonatomic, readonly, retain) NSString *uniqueIdentifier
Special Considerations

Do not use the uniqueIdentifier property. To create a unique identifier specific to your app, you can call the CFUUIDCreate function to create a UUID, and write it to the defaults database using the NSUserDefaults class.

  • Available in iOS 2.0 and later.
  • Deprecated in iOS 5.0.

One criticism of this approach is that the defaults database is backed up every time a user syncs and those back-ups can be restored on other devices, so this might not end up producing a number that’s truly unique to a single device.

Another alternative that has been discussed is using MAC address, which is another unique device identifier that’s assigned to all pieces of hardware that connect to the web. It’s unclear whether Apple would approve this and it also wouldn’t really solve the privacy problem Apple may be trying to fix by deprecating the UDID.