Mobility API mandatory update for Symbian apps created using beta Nokia Qt SDK

Development on Qt mobility APIs is ongoing. The Nokia Qt SDK beta included the mobility 1.0.0 APIs and then the 1.0 release of the Nokia Qt SDK included the 1.0.1 mobility APIs. As part of our ongoing development an important issue has been unearthed that affects Symbian applications that use Mobility APIs that were created using the Nokia Qt SDK beta.

As of now, all developers using the Nokia Qt SDK beta to create Symbian applications that make use of the 1.0.0 Mobility APIs must
1) Move from using the beta version to the 1.0 version of the Nokia Qt SDK, and
2) Repackage Symbian apps created with the Nokia Qt SDK beta with the newest available Qt libraries; to ensure the mobility 1.0.1 APIs are included.

We have discovered an issue that causes apps bundled with the 1.0.0 mobility APIs to crash if the device carrying the app is updated with a newer version of the Qt libraries (specifically the Mobility 1.0.1 APIs). Specific technical reasons are detailed below.
While this is absolutely regrettable, and we are working hard on preventing this from being able to occur in future, it is important to note that
a)    This issue applies to the 1.0.0 Mobility APIs contained in the beta version of the Nokia Qt SDK only
b)    This issue is limited to Symbian applications (that use the 1.0.0 Mobility APIs) only

Specific causes
This breakage is due to the fact that Mobility did not set the 1.0.0 version tag.

On platforms other than Symbian, a missing qmake version tag is interpreted as 1.0.0.
On Symbian however, the missing tag is translated into 10.0.0 and gets encoded into the library binary.

Unfortunately once Mobility set the 1.0.1 version, the Symbian library version was downgraded to 1.0.1 too.

This prevents any application built against Mobility 1.0.0 from linking against libraries shipped with the 1.0.1.

The result is:

  1. Apps built against 1.0.1 work fine against 1.0.1 libraries
  2. Apps built against 1.0.1 work fine against 1.0.0 libraries
  3. Apps built against 1.0.0 work fine against 1.0.0 libraries
  4. Apps built against 1.0.0 –crash- against 1.0.1 libraries and beyond

Note that this break affects Symbian apps based on the 1.0.0 Mobility APIs only.

The most likely solution is to continue with the existing versioning schema so that 1.0.2 libraries remain compatible with 1.0.1 applications.

Processes are being put in place that will enable a greater level of Binary Compatibility testing, including finalization of an agreement with a test partner in order that we make all efforts to avoid such BC problems in the future.

In summary, here is what this means for you

If you are… Action required
Using Nokia Qt SDK final for Maemo/MeeGo development None
Using Nokia Qt SDK final for Symbian development None
Using Nokia Qt SDK beta for Maemo/MeeGo development None
Using Nokia Qt SDK beta for Symbian development (apps that use the 1.0.0 Mobility APIs) Repackage any Symbian application containing Qt libraries from Nokia Qt SDK beta to ensure 1.0.1 Mobility APIs are included
Develop using the final 1.0 version of the Nokia Qt SDK from now on

Other points of note regarding the 1.0.1 patch

Several quality issues are now known with this release. The more significant of these are associated with the Location and Sensors APIs.

* Location API

– Due to a packaging bug the shipped version of the Location library is incompatible with Symbian devices.

* Sensors API

Sensors Library - On N900 devices, QAccelerometer and derivative sensors require root privileges, and can't be used by normal users.

The sensors defect only affects N900 (Maemo 5 / Fremantle).

* Other less severe issues have also been detected including documentation linking.

To that end, the program team are prioritizing resolution of the key issues and a new and higher quality patch release is under development.

Our target is to provide that patch within four weeks.

We will provide status updates weekly on the QtMobility info letter list, in order that you have visibility of the progress.

We apologize for any inconvenience caused.

Qt Mobility Program Team.

Blog Topics: