先介绍一下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