×
Namespaces

Variants
Actions

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.
339 page views in the last 30 days.