Я установил Qt SDK 1.2.1, и когда я собираю одно из примеров приложений — Haptics Player, для Symbian S60, используя Qt 4.7.3.
Пример успешно компилируется, но завершается неудачей на этапе развертывания. Это вывод компилятора:
ERROR: Automatic patching failed at C:\QtSDK\Symbian\SDKs\Symbian1Qt473\bin\createpackage.pl line 357.
make[1]: *** [ok_sis] Error 2
C:\QtSDK\Symbian\SDKs\Symbian1Qt473\epoc32\tools\make.exe: *** [sis] Error 2
01:38:16: The process "C:\QtSDK\Symbian\SDKs\Symbian1Qt473\epoc32\tools\make.exe" exited with code 2.
Error while building project hapticsplayer (target: Symbian Device)
When executing build step 'Create SIS Package'
Однако недавно созданный пустой проект успешно запускается на моем телефоне, то есть эта ошибка происходит в примере проекта, который поставляется с Qt SDK, но не для вновь созданного проекта.
Как я могу исправить эту ошибку?
При ближайшем рассмотрении вывода компилятора я заметил это:
Patching: Executable with capabilities incompatible with self-signing detected: "hapticsplayer_patched_caps.exe". (Incompatible capabilities: "ReadDeviceData", "WriteDeviceData".) Reducing capabilities is only supported for libraries.
Patching: Unable to patch the package for self-singing.
Use a proper developer certificate for signing this package.
Видимо, возможности WriteDeviceData
а также ReadDeviceData
не может использоваться для самозаверяющих пакетов и требует соответствующего сертификата разработчика (который не является бесплатным, и у меня его нет).
Удаление этих строк из файла .pro решило проблему, и теперь Haptics Player скомпилировал:
symbian: {
TARGET.CAPABILITY = WriteDeviceData ReadDeviceData
}
Кажется, что эти возможности на самом деле не нужны, я понятия не имею, почему они были добавлены. Вероятно, недосмотр.
Других решений пока нет …