Symbian OS 打包文件(.pkg)详解及问题总结

先介绍一下pkg文件的结构,在后面补充一些问题。

;languages

&EN,FR

;package-header

#{"MyApp-EN", "MyApp-FR"}, (0x1000001F), 1, 2, 3, TYPE=SA

;vendor

;Localised vendor name(s)

%{"Vendor-EN", ..., "Vendor-FR"}

;Non-localised vendor name

:"Unique vendor name"

 

;logo

="logo.jpg","image/jpeg","target.jpg"

 

;package-signature

*"files/private.key","files/cert.cer"

 

;package-body

;comments

; this is a comment

;condition-block

IF (some_condition) ... package-body ... ENDIF

;options-list

!({"Add-on 1 (20KB)"},{"Add-on 2 (75KB)"})

;install-file

"files/myFile.txt"-"!:/Documents/myFile.txt"

;embedded-sis

@"depend.sis",(0x10000002)

 

;dependency

Dependency on another component

(0x10000003), 2, 2, 3, {"Depend-EN", "Depend-FR"}

Hardware/UI platform dependency

[0x101F7960], 0, 0, 0, {"Series60ProductID"}

 

;properties

+(0=1,1=2,3=-1)

----------------------------------------------------------------------------------------------

languages("&")

&语言1、语言2...

声明了SIS文件支持的语言列表。用逗号分隔不同的语言标识符。下列声明必须与语言标识符数匹配。

localised vendor names

package-header

options-list

install-file

dependency

 

package-header("#")

#{"语言1包名","语言2包名"...},(UID),主版本号,次版本号,build号,TYPE=选项

包含了每个支持语言打包的包名、包的UID、主版本号次版本号build号和包选项(缺省SA),用逗号分隔。包选项指明了是否为应用程序安装、升级、补丁、系统选项等。

 

vendor

Localised vendor name(s)("%")

%{"卖主名称1","卖主名称2"...}

指定了一个或多个本地化的卖主名称(与语言标识符数匹配)。

Non-localised vendor name(":")

:"唯一的卖主名称"

指定了单一的卖主名称,用于确定是否一个包是有效的升级包。对于一个包是否为有效的升级包,包UID和Non-localised vendor name必须与已存在的包分别匹配。

 

logo("=")

="源文件","MIME-type","目标文件"

第一个参数指定了logo所在的路径和名称,第二个参数指定了一个MIME类型,第三个参数指定了生成logo的路径和名称。

 

package-signature("*")

*"key文件","证书文件"

指定了key文件和相关的证书文件。

 

package-body

comments(";")

;comment line

打包文件中的注释符,将忽略注释符后的内容。

condition-block

IF (condition)
    package-body
[ ELSEIF (condition)
    package-body
]
[ ELSE
    package-body
] ENDIF

可以根据条件进行选择性的编译。

options-list("!")

!({"option1"},{"option2"}}

向用户列出选项列表,用户的选择将控制SIS文件的生成。通常结合condition-block一起使用,控制SIS文件的生成。

install-file

"source-filename" - "destination-filename" [, install-options]

声明了PC上将打包到SIS文件中源文件的路径和文件名,以及SIS文件解包到手机设备上的目标文件的路径和文件名。

source-filename说明了包含在SIS文件中的源文件在PC上的路径和文件名。

destination-filename说明了解包SIS文件到手机设备上的路径和文件名,其中"!"表示了安装到用户选择的手机设备的驱动器上。如果打包在SIS中的文件不需要安装在手机设备上,那么就将 destination-filename设置为空,只保留双引号。例如,在安装过程中显示的软件使用许可协议文本文件,不需要安装在手机设别上。

install-options描述了文件的类型以及它对程序安装和卸载的影响。选项如下(括号内为缩写):

FILE(FF):缺省选项,标准的可安装文件。

FILENULL(FN):从v9.x开始,该选项为不赞成使用,仍然保留该选项只是为了方便早期版本的PKG文件移植到v9.x。选项说明了文件或目录在安装时是不存在的,但是将会在程序运行时创建以及在程序卸载时删除。选择了该选项时,source-filename应该为空只保留双引号。

FILETEXT(FT)[,text-options]:选项说明了,安装时一个文本文件的内容将以对话框的形式显示。对话框的类型由text-options指定。文本文件不需要安装在手机设备上,所以destination-filename应该为空只保留双引号。

    [,text-options]选项如下:

    TEXTCONTINUE(TC):对话框显示一个“继续”按钮,在退出对话框后安装将继续。

    TEXTABORT(TA): 对话框显示一个“继续”按钮,在退出对话框后安装将退出。

    TEXTEXIT(TE): 对话框显示一个“是/否”按钮,选择“是”安装继续;选择“否”安装退出。

FILERUN(FR)[,run-options][,RUNWAITEND(RW)]:选项说明了一个安装在设备上的文件,将在程序安装或卸载时运行。具体操作依赖于[,run-options]的参数RI、RR、RB。这个文件可以是可执行文件或文档文件。

    [,run-options]选项如下:

    RUNINSTALL(RI):安装时运行。

    RUNREMOVE(RR):卸载时运行。

    RUNBOTH(RB):安装和卸载时都运行。

    [,RUNWAITEND(RW)]:这是[,run-options]附加的可选项。不选此项,运行的文件将和程序安装和卸载同时运行;选定此项,程序安装和卸载将等待运行的文件完成后继续进行。

embedded-sis("@")

@"SIS文件", (SIS文件的UID)

一个SIS文件中可以嵌入其他的SIS文件。当SIS文件安装或卸载时,嵌入的SIS文件也一并安装或卸载;除非其他的SIS文件对这个嵌入的SIS文件声明了dependency时不能卸载。

 

dependency

Dependency on another component

(所依赖的其他组件UID), 要求的版本号范围, {"语言1的组件名称","语言2的组件名称",...}

用于指出组件的安装依赖于其他组件的安装,依赖的组件并没有嵌入在当前的SIS文件中。其中依赖的组件必须已经安装在手机设备上,并且版本号不低于要求的版本号或在要求的版本号范围内,否则安装将失败。

Hardware/UI platform dependency

[平台UID],version-range,{"平台名称"}

平台UID用于标识Series60的特定版本或特殊设备,它与应用程序的3个UID没有任何关系。

[平台UID]:

0x102752AE for S60 3rd Editiion SDK Feature Pack 2

0x102032BE for S60 3rd Edition SDK Feature Pack 1

0x101F7961 for S60 3rd Edition SDK

0x102032BF for S60 2nd Edition SDK Feature Pack 3

0x10200BAB for S60 2nd Edition SDK Feature Pack 2

0x101F9115 for S60 2nd Edition SDK Feature Pack 1 (v2.1)

0x101F7960 for S60 2nd Edition SDK (v2.0)

0x101F8202 for S60 1st Edition SDK Feature Pack 1 (v1.2)

0x101F795F for S60 1st Edition SDK (v1.0)

0x101F6F88 for S60 1st Edition SDK (v0.9)

version-range:不再使用的版本区域,通常设为(0,0,0)。

{"平台名称"}:在S60平台不再使用,通常作为安装在非S60平台的错误信息。

 

properties("+")

+(0=value0,1=value1...)

用于指定键/值对,可以通过AppProp() 函数根据键来查找对应的值。多用于查找其他PKG文件中对应的键/值对。

 

 

 

补充问题:

1. 怎样添加中文语言?

    在language属性值中追加“ZH”,例如&EN, ZH。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/primer_programer/archive/2009/03/24/4021039.aspx

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值