Application UIDs

A UID is a globally unique identifier consisting of a 32-bit number used to uniquely identify, for example, an object or file type. In S60 development, objects are identified by compound identifiers that are constructed from three UIDs, namely UID1, UID2, and UID3.

UID1

UID1 specifies the category of an object. In S60 application projects, UID1 is automatically specified by the build tools based on the TARGETTYPE keyword of the project mmp file. You don't have to specify UID1 yourself.

UID2

UID2 specifies a sub-category of an object. You need to specify an appropriate UID2 value (according to the project type) for the UID keyword in the project mmp file. UID values for some commonly used project types are as follows:
  • GUI-based applications: 0x100039CE

  • Static dlls: 0x1000008d

  • Polymorphic dlls: value depends on the dll type (general engine, plugin, device driver, etc.) which all have their own unique value

UID3

Unlike UID1 and UID2 that specify the category of an object, UID3 identifies a particular object, e.g. a particular exe file or a particular dll file.

UID3 is used among others in the following places of your application:

Choosing the UID3 value

You have to get the UID3 from Symbian who manages the allocation of UIDs. You can request UIDs either one at a time or as preallocated blocks on the Symbian Signed website.

There are three ranges that can be used for UID3 values as follows:
  • For testing purposes, you can use any UID from the 0xE0000000 to 0xEFFFFFFF range without applying for it from Symbian

  • If you want to distribute a Symbian application which doesn't need to be Symbian Signed (for example freeware), you should request UID from the 0xA0000000 to 0xAFFFFFFF range of unprotected UIDs. For more information, see UID of self-signed applications in the Forum Nokia technical library

  • If you want to use some restricted features of a mobile device, you need to request your application to be Symbian Signed which means that you request a UID3 from the 0x20000000 to 0x2FFFFFFF range

For more information, see How to use UIDs and Building, debugging and deploying an application.

Note: If you use a UID3 that is in the test range during development and need to replace it with a UID assigned by Symbian so that you can get the application Symbian Signed you need to replace all occurrences of the UID3 in your source code. To do this you can do a text-based search and replace (with e.g. Carbide++) in the project files. The UID3 value is used at least in the following places:

Platform UID

Platform UIDs are used to uniquely identify versions of the S60 platform. To set the platform UID, specify the target platform version for your application in your project pkg file.

Platform version UIDs are as follows:

  • 0x1028315F for S60 5th Edition SDK

  • 0x102752AE for S60 3rd Edition SDK Feature Pack 2

  • 0x102032BE for S60 3rd Edition SDK Feature Pack 1

  • 0x101F7961 for S60 3rd Edition SDK

  • 0x102032BF for S60 2nd Edition SDK Feature Pack 3

  • 0x10200BAB for S60 2nd Edition SDK Feature Pack 2

  • 0x101F9115 for S60 2nd Edition SDK Feature Pack 1 (v2.1)

  • 0x101F7960 for S60 2nd Edition SDK (v2.0)

  • 0x101F6F88 for S60 1st Edition (v0.9).