UDID to GUID migration for iOS applications
With the release of iOS 5.0, Apple announced deprecation of universal device IDs (UDIDs) on its mobile devices. Verivo apps that depend on device ID authentication must now use a different identifier. With the 7.3.14 release, the upgraded Verivo iOS platform generates a globally unique identifier (GUID) for each iOS client on initial application startup, and permanently stores it in the device keychain.
By default, a client login request sends the new GUID together with the deprecated UDID to the Verivo AppServer. If desired, the client build process can be modified so clients only upload the new GUID.
Caution: It is unclear how long Apple will continue to support UDIDs.
To handle client requests with two device IDs, the 7.3.14 upgrade modifies the Verivo configuration database by adding an OldDeviceID column to the tmpcfg_User table. This change only applies to applications that use device ID authentication and have auto enrollment enabled, as follows:
- Existing user records maintain the original UDID in their DeviceID field.
- When the upgraded server receives its first request from a client device, it adds a new record to the tmpcfg_User table and sets its DeviceID and OldDeviceID fields to the device's GUID and UDID, respectively.
In cases where device IDs are used by external data, you can use the Python scripting code attached to this article (DynamicPlugin.py) to facilitate migration of this data. This code can be used to migrate REST and WSDL data; its logic can be adapted for use with other data sources.
The attached code performs the following tasks for each new device ID record:
- Maps the new record's UDID to an existing user record.
- Copies user data from the existing record to the new one.
To use the DynamicPlugin.py script, the following requirements apply:
- You must upgrade your application to the 7.3.14 release (see the release notes on the support site for upgrade details).
- Your application server must be Plug-in scripting enabled; in this case, use the sample code to update the DynamicPlugin.
- The Plug-in scripting Authentication data source must set its Auth. Username connection parameter to #VerivoID#.
For info on DeviceID and GUID usage on other device types, refer to this KB article: