Prior to iOS 6, Apple’s uniqueIdentfieri method was often used to obtain a string unique to each device. This UDID was often used by developers to track a user’s app usage and other information (note that RMSDK does not use device UDID to track any user information nor does it transmit the UDID outside of the app). To address the privacy issue, Apple deprecated this API starting in iOS 5. However, Apple did not provide a new API to allow developers to distinguish one device from another at that time. This changed in iOS 6. A new property, identifierForVendor, is available now as part of the UIDevice class implementation.
According to Apple’s description for identifierForVendor, the value of this property provides a unique value per device per Vendor. A different value is returned for apps on different devices regardless of vendor. The same value is returned for all apps from the same vendor on the same device. As far as RMSDK is concerned, this serves the purpose of acquiring a unique key to distinguish one device from another, regardless of vendors.
Apple has set May 1 as the deadline to reject apps that access a device’s unique identifier (device UDID), to address privacy concerns. If you submit your app that still uses uniqueIdentifier, you will get a message pretty quickly from Apple like this one:
“Apps are not permitted to access the UDID and must not use the uniqueIdentifier method of UIDevice. Please update your apps and servers to associate users with the Vendor or Advertising identifiers introduced in iOS 6.”
Datalogics is planning to release a new version of RMSDK in the next few days that uses the identifierForVendor property to obtain a unique ID for each device on iOS 6. For iOS 5 and earlier, we will replace uniqueIdentifier with CFUUID to obtain the unique ID.
To address the concern that with the new change a user may lose an activation, RMSDK will look for existing activation data first. For users who have activated readers on a device but the device has been wiped clean, upon installing the new version, the user will lose an activation. Restoring from backup usually preserves the activation, as long as the backup was made from the same device. (i.e. restoring from a backup to a new or different device will lose the activation, but this is the same behavior as with the existing RMSDK.)
For adding activations for an Adobe ID account, users can go to Adobe’s support page here. For Vendor ID accounts, please send user’s UUID to acs_support@datalogics, we will be able to take care of that for you.