API Development

The new way we UDID

A major change that came along with iOS5 was Apple’s deprecation of a platform-generated unique device identifier (UDID). In previous Titanium releases, this property was accessed via “Ti.Platform.id”, and was frequently used to track per-user data in mobile applications.

While this property can still be accessed in iOS 5, it is not certain how long it will remain available. To avoid confusion, and ensure that new apps do not use a deprecated API, we replaced the Apple UDID with our own. This means that “Ti.Platform.id” now returns a Titanium-created ID that uses CFUUIDCreate [edited: the usage of MAC address was incorrect].

While we recommend that all developers move away from using the old UUID property as soon as possible, we created a module to expose this deprecated property, to help provide a grace period in which you can transition to the new one.

To use this module:

  1. Download the module
  2. Copy this zip file into the folder of your Titanium SDK
  3. Add <module version=”1.0″ platform=”iphone”>ti.udid</module> to your TiApp.xml where you currently have </modules>
  4. Use the oldUDID property to access the old UDID… once Apple stops supplying this, it will simply return a blank string. (for an example of how to call this property see this file)

Then to update your UDID, simply do something along these lines:

To be clear, this module should NOT be considered a permanent workaround to Apple’s UDID changes. We provide it purely to help you to migrate to the new Titanium-created UDID.
Update: This module has been removed entirely and usage of it at this point will result in app store rejection.