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. These UIDs are called UID1, UID2, and UID3.
In S60 application projects, UID1 is automatically specified by the
build tools based on the TARGETTYPE keyword of the project's mmp file.
The table below lists the UIDs for some commonly used project types. As the
table below shows, the requirements for UID2 and UID3 vary based on the type
of the project.
|
GUI-based applications |
Static dlls |
Polymorphic dlls |
|
|---|---|---|---|
|
UID2 |
0x100039CE |
0x1000008d |
Value depends on the dll type (for example, general engine, plugin or device driver),which all have their own unique value. |
|
UID3 |
Unique |
Unique |
Unique May or may not be required depending on the type defined in UID2. |
You need to:
specify the appropriate UID2 (according to the
project type) and UID3 values for the UID keyword
in the project mmp file.
use the UID3 in your application code (in the CAknApplication class).
For more information on the class requirements for GUI-based applications,
see Figure 33
add the UID3 to the pkg file .
There are two unprotected UID ranges that can be used for UID3 values
as follows:
For self-signed applications, it is recommended that you use UIDs from the following range of unprotected UIDs:
0xA0000000 to 0xAFFFFFFF
For more information, see UID of self-signed applications in the Forum Nokia technical library.
For testing purposes, you can use an UID from the following range without applying for it from Symbian:
0xE0000000 to 0xEFFFFFFF
Symbian manages the allocation of UIDs. Developers can request UIDs either individually or in preallocated blocks by going to the Symbian Signed website.
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, change the UID3 in the mmp project
file, the declaration for the CAknApplication derived
class to the correct value before releasing the application and package header
declaration, and the registration
resource file.
For more information, see How to use UIDs and Building, debugging and deploying an application in the Symbian OS Library..
S60 C++ APIs are commonly targeted at multiple platform versions. Thus, it is worthwhile to design the application for multiple platform releases. Choosing the correct Platform ID helps in declaring the compatibility of each application build. The general rule is that you should use the Platform ID of the first compatible S60 platform release to provide smooth installation on that and all subsequent platform releases (provided that there is no binary break between platform releases).
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:
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).