The UDID is a unique ID assigned to every iOS device. Developers were able to make use of this ID to differentiate devices, especially when a single user uses multiple devices. That feature will be going bye bye with the upcoming release of iOS5, leaving developers scrambling to find an alternative before launch.
NSString *uniqueIdentifier = [device uniqueIdentifier];
That little line of code above was what developers have been using to capture your UDID since the beginning of iOS development. Apple has received some heat via lawsuits lately that has prompted the depreciation.
Developers are being advised to create app specific identifiers for tracking hardware in their own code, and some clever developers have already started sharing methodology for doing so on Apple’s dev forums.
One thing that Apple has suggested steering clear of is using a device’s MAC address as its identifier. With the ease of MAC spoofing, this is a security problem waiting to happen and shouldn’t be taken lightly. That being said, there aren’t many other device specific constants to draw from when trying to create an identifier.
I’m currently writing an app that this change affects, and I’m currently thinking of “outside of the box” ways to create my own IDs. One of the most interesting I’ve come up with thus far is a variable ID that pairs MAC address with location data and writes that data to a DB paired with the user’s login credentials attached.
Over time this data will paint an array of IDs that all fall into a specific range. If someone were to try and spoof the MAC, they’d need to do so following some of the same geographical footsteps the actual user makes.
The idea is still very much a napkin sketch at this point, and there are HUGE issues to overcome with it, but it’s going to be interesting to see where developers take this, myself included.