×
Namespaces

Variants
Actions
Revision as of 08:18, 15 December 2011 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Qt for Symbian智能安装工具(smart installer)

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
兼容于
平台:
Symbian

文章
bugatcuteqt 在 10 Jun 2010 创建
最后由 hamishwillee 在 15 Dec 2011 编辑

Contents

概述

诺基亚Qt智能安装工具(Nokia Smart Installer)的使用使得在Symbian^3平台以前的手机运行Qt应用变得可能,并确保为Symbian手机平台开发的Qt应用能够工作在最新的Qt环境中。基本工作原理是在开发Qt应用的时候将Smart Installer和Qt应用一起打包成.sis安装文件,当封装了Smart Installer的.sis文件被安装到手机上时,系统会自动检测手机里是否安装了Qt及当前的Qt版本是否满足当前Qt应用的工作需要,如果当前的环境不能满足Qt应用需要,则会从诺基亚的服务器上自动下载更新的Qt环境,保证Qt应用能够安装和执行。在诺基亚Symbian^3平台以后的手机中,Qt库都将被预置于手机中,但是为了使得签名后的Qt应用程序都使用于所有的手机,建议Qt应用都包含Smart installer。

File:Smartinstaller.png


下载

开发者可以同更新自己安装过的Nokia Qt SDK 来获取最新的smartinstaller.sis文件。安装后的文件路径为C:\NokiaQtSDK\Symbian\SDK。目前的大为32K。它是一个非常小的文件,从而不会给开发者最终的sis文件大小产生很大的影响。带有Smart Installer的测试应用可以下载。用户可以在官方Smart installer网址查看更多信息。
将下载后解压出来的smartinstaller.sis文件拷贝到Symbian SDK目录下,和epoc32在同一级目录。

相关Smart Installer 的更多可以在Nokia Smart Installer for Symbian找到。对发布到Ovi应用商店的应用来说,开发者可以在pkg文件中使用如下的描述来申明dependency:

(0x2001E61C), 4, 6, 3, {"Qt"}
(0x2002AC89), 1, 0, 1, {"QtMobility"}

对于Symbian^3手机的开发者来说,早期的N8手机中虽然在出厂时已经有Qt库的安装,但可能没有Qt Mobility 库的存在,所以在发送应用到Ovi网站发布时,千万要记得在.pro文件中加入Qt Mobility的描述以声明对Qt Mobility库的dependency。这样用户在安装应用时可以自动从服务器中下载最新版的Qt Mobility库。开发者可以参阅文章: 怎么为Ovi商店应用对Qt应用签名。更多信息: Ovi Publisher Alert

在这里必须指出的是:对于任何在Ovi上发布的Qt应用来说,应用的UID必须是在 Protected 范围内的,也即0x2xxxxxxx。这个UID必须是在网址www.symbiansigned.com上登录后申请的全球唯一的UID。开发者在得到UID后可以在自己的.pro 文件中指定自己应用的UID。修改过后的应用需要使用开发者证书进行签名,而不能使用用自签名。关于更多签名的问题,请参考如何进行Symbian签名。更多关于Qt在Symbian平台上的签名可以参阅:Qt & Application Signing/zh-hans

symbian {
TARGET.UID3 = 0x2174fc7c
# TARGET.CAPABILITY +=
TARGET.EPOCSTACKSIZE = 0x14000
TARGET.EPOCHEAPSIZE = 0x020000 0x800000
}

使用

编译自签名的智能安装包

在进行打包之前,仔细检查 .pkg 文件中是否含有所支持平台的UID。详细的UID信息:。 平台及设备UID。否侧,所产生的sis文件将可能在手机运行的平台上不被支持而不能下载最新的Qt相关的库。

在DOS命令中执行qmake可以生成编译所需的所有文件

C:\Sources\Application>qmake

调用make release-gcce生成可发布的symbian应用

C:\Sources\Application>make release-gcce

调用make installer_sis,会生成加入了智能安装工具的安装包application_installer.sis

C:\Sources\Application>make installer_sis

注: 如果调用的是make sis文件将生成没有封装智能安装工具的安装包application.sis

编译Symbian签名的智能安装包

在DOS命令中执行qmake可以生成编译所需的所有文件

C:\Sources\Application>qmake

调用make release-gcce生成可发布的symbian应用

C:\Sources\Application>make release-gcce

调用带证书和密钥选项的make sis,生成application.sis

C:\Sources\Application>make sis QT_SIS_CERTIFICATE=developer.cer QT_SIS_KEY=developer.key

将生成的application.sis提交签名,然后调用make installer_sis,会生成加入了智能安装工具的安装包application_installer.sis

注意:在执行make installer_sis之前需要将封装包的UID改成0x2002CCCF详细内容参考附录

C:\Sources\Application>make installer_sis QT_SIS_CERTIFICATE=developer.cer QT_SIS_KEY=developer.key

注意:这里的developer.cerdeveloper.key是开发者自己用于签名的开发者证书。新生成的application_installer.sis需要重新进行Symbian签名。

提交Ovi store的未签名的智能安装包

Ovi store现在提供为symbian应用签名的服务, 使用这个服务的开发者需要提交未签名的SIS包, 即Application_installer.sis 及 其包含的Application.sis 要未签名版本,(包含在Application.sis中的其他sis需要正确签名)。 Ovi store的签名服务只签名Application.sis及外层的Application_installer.sis。 使用以下命令来生成SIS文件:

make unsigned_sis
make unsigned_installer_sis

Note.pngNote: 注意:开发者必须使用非Beta版的 最新的Nokia Qt SDK来生成,要提交的应用需要时未签名的SIS, 自签名(Self-Sign)的sis不能通过自动测试,开发者签名的SIS, 原则上可以手动去掉签名,但是这会延缓测试时间。unsigned_sis 和 unsigned_installer_sis选项 从Qt 4.7.1 开始提供,

Qt 4.6产生的Makefile不包含unsigned_sis 和 unsigned_installer_sis选项,而使用sis,installer_sis命令选项生成的是自签名的SIS这无法通过测试,加上开发者签名也会延缓测试进度。

不建议自己修改Makefile,在Nokia Qt SDK包含Qt4.7以前,要生成未签名的SIS,我们有下面两种方法。打开Start > Nokia Qt SDK > Symbian > Qt for Symbian Command Prompt命令行。

make release-gcce
makesis Application_templae.pkg Application.sis
makesis Application_installer.pkg

也可以用signsis -u命令去掉签名,来得到未签名的 sis文件

make release-gcce
make sis
signsis -u Application.sis Application.sis
make installer_sis
signsis -u Application_installer.sis Application_installer.sis
请任选择其中一种方法, 生成用于提交的Application_instller.sis。

附录:.pkg封装文件

自签名的.pkg文件格式内容如下(部分)

; application_installer.pkg generated by qmake at 2010-06-04T15:17:38
; This file is generated by qmake and should not be modified by the user
;
 
; Language
&EN
 
; SIS header: name, uid, version
#{"application installer"},(0xA000D7CE),1,0,0
 
; Localised Vendor name
%{"Vendor"}
 
; Unique Vendor name
:"Vendor"

使用Symbian签名的.pkg文件格式如下(部分)

; application_installer.pkg generated by qmake at 2010-06-04T15:17:38
; This file is generated by qmake and should not be modified by the user
;
 
; Language
&EN
 
; SIS header: name, uid, version
#{"application installer"},(0x2002CCCF),1,0,0
 
; Localised Vendor name
%{"Vendor"}
 
; Unique Vendor name
:"Vendor"

区别在

  1. {"application installer"},(0xA000D7CE),1,0,0 变成了
  2. {"application installer"},(0x2002CCCF),1,0,0

关于SmartInstaller 的一个样本 pkg 文件可以在这里File:Smartinstaller sample pkg.zip下载。

怎么调试Smart Installer

如果你在开发过程中发现Smart Installer不能正常工作,那么请你在手机中手动创建c:\logs\adm目录。开发者可以在在找到相应的log信息,并给予你一些提示。

相关文档

This page was last modified on 15 December 2011, at 08:18.
672 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×