For us folks dealing with enterprise mobility and MDM, having access to the iOS Unique Device Identifier (UDID) in our apps was a tremendously valuable capability.
With access to the UDID, we were able to use a common identifier for a device that would always be the same between through both the MDM channel as well as within our apps.
For instance, we used a device’s UDID as the primary identifier when storing Apple’s APNS magic token in our push provider’s database. When iOS 7 was released, the [UIDevice deviceIdentifier] method would return the vendorIdentifier value (which would always start with FFFFFFFFF), and that value would be registered in our push provider database. Of course when our MDM software wanted to send a push notification to the user via our app – using the UDID that MDM still has access to – there wasn’t a valid match found in the database any longer. So push no longer works in our app.
The fix is easy, but will just take some work:
- In the app, change from deviceIdentifier to vendorIdentifier
- Report the vendorIdentifier value to our MDM server
- When iOS version ≥ 7.0, use the vendorIdentifier value instead of UDID when sending a device identifier to our push provider service
I’m sure this is just one of several “little things” we will be discovering as users upgrade to iOS 7, but such is the nature of tech!