How to correctly sign smart installer package?
-
I am having a probem with an application i am trying to upload to OVI. It's been rejected because "the UID/SIS displayed in your application is: EA640579". I have explicitly set TARGET.UID3 = 0x20045CF8 in all the .pro files of my project that are generating binaries. It can't be totally wrong as i can install and run on my test device. Although i get the message that the package is "untrusted". Is this a sign that the package is not correctly signed?
I am using the smart installer which imho wraps a separate application around my package. Do i also have to sign this installer app? If yes, where do i tell qtcreator/remote compiler to do that?
I am building my project under Linux using the remote compiler. What do i have to specify in the "password" line in the remote compiler config? Nothing?
My questions: Where else do i have to set the UIDs? And even more interesting: What Linux tool can me help to verify that these are correct?
-
[quote author="harbaum" date="1310190797"]I am having a probem with an application i am trying to upload to OVI. It's been rejected because "the UID/SIS displayed in your application is: EA640579". I have explicitly set TARGET.UID3 = 0x20045CF8 in all the .pro files of my project that are generating binaries. It can't be totally wrong as i can install and run on my test device. Although i get the message that the package is "untrusted". Is this a sign that the package is not correctly signed?
[/quote]Make sure you have run qmake after you have modified the pro file and before build the app using the remote compiler. Btw I had a similar problem and one of my apps was rejected once. It was partly caused because "this bug at Qt SDK 1.1":http://developer.qt.nokia.com/wiki/Building_Applications_for_Symbian1_with_Qt_SDK_1.1 on Windows XP. I have solved following the described "patch" and after that I ran qmake and rebuilded the app again.
[quote author="harbaum" date="1310190797"]
I am using the smart installer which imho wraps a separate application around my package. Do i also have to sign this installer app? If yes, where do i tell qtcreator/remote compiler to do that?
[/quote]No, you should not signed the smart installer nor the app when you submit it to Ovi if you expected them to signed it for you. More information about Nokia Smart Installer for Symbian including a video tutorial is available at "wiki":http://developer.qt.nokia.com/wiki/Nokia_Smart_Installer_for_Symbian.
[quote author="harbaum" date="1310190797"]
My questions: Where else do i have to set the UIDs? [/quote]No, you have to set a UID from the protected range only at the pro file of your Qt application.
-
[quote author="harbaum" date="1310192669"]Can i verify this myself? I wouldn't like to wait several days again before being told that the problem is still the same.[/quote]
Check the following propositions from Developer Nokia:
"How to get view UID of app":http://www.developer.nokia.com/Community/Discussion/showthread.php?43705-How-to-get-view-UID-of-app
"How to find application UID ?":http://www.developer.nokia.com/Community/Discussion/showthread.php?124208-How-to-find-application-UIDYou can also check the pkg file of your application (not the installer pkg!) which is automatically generated with qmake to verify that you are using the desired UID.
-
Hm, i will try some of the things mentioned there. I might add that my package includes an application and five dlls and i am not sure if they are all signed correctly or if e.g. one of the dlls is the culprit and not the main application. So i might need to do some more research on this ...
I e.g. don't know if i must use the same uid for application and dlls or if i must use different ones or if the dlls don't need to be siged at all.
-
Argh ... what i've done now:
- Installed the sis with my developer certificate
- Added the .crt and .key to my project
- Added TARGET.UID3=0x20045CF8 to the main executables .pro and all dlls .pro
Still my package fails to install with the message "Unable to install protected application from an untrusted supplier"
-
[quote author="harbaum" date="1310236402"]
Still my package fails to install with the message "Unable to install protected application from an untrusted supplier"[/quote]If you want to test your application on Symbian device you should use a development (or self-signed) certificate to signing it. The certificate depends on the "capabilities of your app":http://developer.qt.nokia.com/wiki/Symbian_Capabilities
-
[quote author="harbaum" date="1310300302"]I am using the developer certificate and i have been installing the certificate also on my dev unit. Still i get that error message ...[/quote]
Have you configured Qt Creator to sign your application with it after the app is built?
-
Sure, as already mentioned i added the .crt and .key file to qtcreator and selected "signed". Also sisxplorer shows that the resulting sis file is signed. Still the device itself claims it isn't ... Also the device itself claims the the vendor is "Unknown" while sisxplorer sais the vendor is me.
-
[quote author="harbaum" date="1310320843"]Sure, as already mentioned i added the .crt and .key file to qtcreator and selected "signed". Also sisxplorer shows that the resulting sis file is signed. Still the device itself claims it isn't ... Also the device itself claims the the vendor is "Unknown" while sisxplorer sais the vendor is me.
[/quote]
The vendor should be described as follows at the pro file:
@
symbian:
{
vendorinfo = "%{"Your Name"}"
":"Your Name""
my_deployment.pkg_prerules = vendorinfo
DEPLOYMENT += my_deployment
}
@Please make sure that the certificate that you are using matches the required "capabilities":http://developer.qt.nokia.com/wiki/Symbian_Capabilities of your application which should be also describe at the pro file.
-
I also set it that way and the sisxplorer shows that this is really set. And the capabilities also shouldn't be the problem as i only need and set location and network.
I have submitted the application despite the fact that i myself cannot install it. I hope that if that fails the reply will give me clue where my problem is.
-
[quote author="harbaum" date="1310495582"]And the capabilities also shouldn't be the problem as i only need and set location and network.[/quote]
If you are using just NetworkServices and Location you should be able to use even a self-sign certificate to install it on Symbian^3 devices because these are basic capabilities.
-
[quote author="harbaum" date="1310498703"]Yes, indeed. I have been doing that during the development process. But for OVI i need to sign it.[/quote]
No you do not if you are enrolled at "Nokia signing Symbian and Java apps for free":http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml for free program:
bq. 5. The publisher submits the app (the unsigned SIS file with the UID provided) via the Ovi Publish tool.
So just set the UID and submit the unsigned sis file!
-
[quote author="harbaum" date="1310579997"]Oh, i missed that. Thanks![/quote]
You are welcome! I will add a solved tag and hope that your app will pass Ovi QA successfully asap :)
-
[quote author="leon.anavi" date="1310594286"]
You are welcome! I will add a solved tag and hope that your app will pass Ovi QA successfully asap :)
[/quote]Argh ... qtcreator doesn't allow me to create an unsigned smart installer. So either i submit without installer (which imho is a bad idea) or i have to sign. Or am i once more missing something?
-
[quote author="harbaum" date="1310626033"]
Argh ... qtcreator doesn't allow me to create an unsigned smart installer. So either i submit without installer (which imho is a bad idea) or i have to sign. Or am i once more missing something?[/quote]If you do not use "smart installer":http://developer.qt.nokia.com/wiki/Nokia_Smart_Installer_for_Symbian your application will be rejected by Ovi QA.
To create unsigned version of your application follow these steps:
Open your project from Qt Creator.
Select Project and click on* Symbian Device* and Run.
Under Create SIS Package select Not signed and check Create Smart Installer Package.
-
[quote author="leon.anavi" date="1310627227"]
To create unsigned version of your application follow these steps:Open your project from Qt Creator.
Select Project and click on* Symbian Device* and Run.
Under Create SIS Package select Not signed and check Create Smart Installer Package.
[/quote]
Once i select "Not Signed", the option to enable "smart installer" is automatically being disabled (grayed out). The qtcreator ui just doesn't allow this combination.
Edit: I am using the remote compiler as i am running linux. I can't tell whether a local build under win32 allows for this combination