| 深红粗体字为注释。注:标识了(非必要)的区段在未设置信息时可以省略不写,其他区段则不可省略。 |
| ;编译信息开始(文件内注释用 ; 号来标识,如果PKG文件内包含双字节字符(比如中文,日文),则使用文本编辑工具保存时,必须将PKG文件编码保存为UNICODE,否则无法正常编译。)
;PKG文件头部信息--开始
;语言支持(非必要) &EN,ZH
;安装程序标题,版本号及SIS文件UID #{"Language Name 1","Language Name 2"},(UID),0,0,0,SH,NC,TYPE=SISAPP
;开发平台兼容性校验 (UID),0,0,0,{"Series60ProductID","Series60ProductID"} ;PKG文件头部信息--结束
;安装文件信息--开始
;单语言文件安装 "PCSourceFile\MyApp.app"-"MobileDestFile\MyApp.app" ;多语言文件安装(如果是单语言安装程序,则此段可省略) { "PCSourceFile\MyApp.rEN" "PCSourceFile\MyApp.rZH" }-"MobileDestFile\MyApp.rsc"
;必要组件校验(非必要) (UID),0,0,0,{"Language Name 1","Language Name 2"}
;可选附加组件(非必要) !({"Language Name 1 for Add-on 1 (20kb)"," Language Name 2 for Add-on 1 (20kb)"},{"Language Name 1 for Add-on 2 (20kb)"," Language Name 2 for Add-on 2 (20kb)"})
;条件判断(非必要,如果可选附加组件部分没有写,那么此部分也不需要写) IF option1 "PCSourceFile\addon\MyPic.gif"-"!:\System\Apps\MyApp\addon\MyPic.gif" ENDIF ;附加SIS文件(非必要) @"PCSourceFile",(0x12345678) ;安装文件信息--结束
|
| |
| 语言支持
界面语言支持行,如果此行不写则取默认值&EN 一个SIS文件内可以包含多个界面语言版本,但只能安装一种语言(安装时会自动根据你的系统语言来安装相应的界面语言版本) 多个语言时用 , 分隔 多语言安装程序时不可省略界面语言支持行 ·单一语言:&ZH ·多语言:&EN,ZH
| 参数值 |
说明 |
参数值 |
说明 |
参数值 |
说明 |
参数值 |
说明 |
| AF |
荷兰语(南非) |
FI |
芬兰语 |
LS |
西班牙语(拉丁美洲) |
SF |
法语(瑞士) |
| AH |
埃塞俄比亚语 |
FR |
法语 |
LT |
立陶宛语 |
SG |
德语(瑞士) |
| AM |
英语(美国) |
FS |
瑞典语(芬兰) |
LV |
拉脱维亚语 |
SQ |
阿尔巴尼亚语 |
| AR |
阿拉伯语 |
GA |
爱尔兰语 |
MK |
马其顿语 |
SW |
瑞典语 |
| AS |
奥地利语 |
GD |
盖尔人语(苏格兰) |
ML |
马拉亚拉姆语(印度) |
SZ |
意大利语(瑞士) |
| AU |
英语(澳大利亚) |
GE |
德语 |
MN |
蒙古语 |
TA |
泰米尔语 |
| BE |
俄语(白俄罗斯) |
GU |
古吉拉特语(印度) |
MO |
摩尔多瓦语 |
TC |
中文(台湾) |
| BF |
法语(比利时) |
HE |
希伯来语 |
MR |
马拉提语(摩剌陀语) |
TE |
泰卢固语(印度) |
| BG |
保加利亚语 |
HI |
印地语(印度) |
MS |
马来语 |
TH |
泰语 |
| BL |
佛兰德斯语(比利时) |
HK |
中文(香港) |
MY |
缅甸语 |
TI |
厄立特里亚语 |
| BN |
孟加拉语 |
HR |
克罗地亚语 |
NN |
尼诺斯克语(挪威) |
TK |
土库曼语 |
| BO |
藏语 |
HU |
匈牙利语 |
NO |
挪威语 |
TL |
塔加拉语(菲律宾) |
| BP |
葡萄牙语(巴西) |
HY |
亚美尼亚语 |
NZ |
英语(新西兰) |
TU |
土耳其语 |
| CA |
加泰罗尼亚语 (西班牙) |
IC |
冰岛语 |
OS |
国际西班牙语 |
VI |
越南语 |
| CE |
英语(加拿大) |
IE |
国际英语 |
PL |
波兰语 |
UK |
乌克兰语 |
| CF |
法语(加拿大) |
IF |
国际法语 |
PO |
葡萄牙语 |
UR |
乌尔都语 |
| CS |
捷克语 |
IN |
印度尼西亚语 |
PA |
旁遮普语 (印度、巴基斯坦) |
ZH |
中文 |
| CT |
塞浦路斯语 |
IT |
意大利语 |
RO |
罗马尼亚语 |
ZU |
祖鲁语 |
| CY |
威尔士语 |
JA |
日语 |
RU |
俄语 |
|
|
| DA |
丹麦语 |
KA |
格鲁吉亚语(土耳其) |
SI |
斯里兰卡语 |
|
|
| DU |
荷兰语 |
KK |
哈萨克语 |
SK |
斯洛伐克语 |
|
|
| EL |
希腊语 |
KM |
柬埔寨语 |
SL |
斯洛文尼亚语 |
|
|
| EN |
英语(默认值) |
KN |
坎拿达语(印度) |
SO |
索马里语 |
|
|
| ET |
爱沙尼亚语 |
KO |
韩语 |
SP |
西班牙语 |
|
|
| FA |
波斯语 |
LO |
老挝语 |
SR |
塞尔维亚语 |
|
|
|
| |
| 安装程序信息
以#{"RescoView","RescoView简体汉化版"},(0x11111111),4,10,0为例说明:
1. #{"RescoView","RescoView简体汉化版"}是安装程序标题 如果是单一语言的安装程序,则只写一个标题即可 如果是多语言安装程序,则需要按语言支持区段的语言顺序来依次(就是按&EN,ZH那个部分的顺序)输入各语言版本下的标题,标题名称用“,”分割 ·单一语言:#{"RescoView简体汉化版"} ·多语言:#{"RescoView","RescoView简体汉化版"}
2. (0x11111111)是SIS安装文件的UID(自定义,SIS安装文件即是安装完成后在C:\system\install\生成的相应SIS文件)
3. 4,10,0是程序安装时显示的版本号,4是主版本号,10是次版本号,0是build版本号;4,10,0在安装时显示的就是4.10 4. SH,NC是SIS文件选项(此处为非必要参数)
| 参数值(缩写) |
参数值(全称) |
说明 |
| SH |
SHUTDOWNAPPS
|
关闭应用程序 |
| NC |
NOCOMPRESS
|
不压缩 |
5. TYPE=SISAPP是SIS文件的类型(如果未指定,则默认为TYPE=SISAPP)
| 参数值(缩写) |
参数值(全称) |
说明 |
| SA |
SISAPP
|
标准的安装程序(默认值) |
| SY |
SISSYSTEM
|
此安装程序类型包含系统库或共享库文件注册(DLL或OPX文件),这些库文件在主程序卸载时会一并卸载 |
| SO |
SISOPTION
|
此安装程序类型安装时有可选组件,选择安装的组件在主程序卸载时会一并卸载 |
| SC |
SISCONFIG
|
此安装程序类型可以配置已存在的程序或服务,此类型打包时不应该包含任何新文件。只能用来配置安装或运行过程中的文件显示及增加新组件等等操作。在程序管理列表中不会显示配置程序的卸载,需要手动卸载 |
| SP |
SISPATCH
|
此安装程序类型会修复已存在的的程序,在程序管理列表中不会显示修复程序的卸载,需要手动卸载 |
| SU |
SISUPGRADE
|
此安装程序类型可以升级已存在的程序,但在程序管理列表中不会显示升级程序的卸载,需要用户手动删除文件或重新关联程序才能撤销升级 |
|
| |
| 兼容性
此区段用来限制程序是否可以被正确安装在目标机型上(比如防止NOKIA Series60的软件安装在UIQ的机型上,避免造成程序错误) 以(0x101F6F88),0,0,0,{"Series60ProductID","Series60ProductID"}为例说明: 1. (0x101F6F88)是开发平台SDK的UID,也可以用具体机型的UID来限制 下表给出几个常见机型的平台UID及机型UID(由于能力问题,UID资料可能存在错误或不完全,请见谅) 以下对Symbian OS几个版本以及Series60的性能做一下概述
| 1.屏幕显示象素:176×208 |
| 2.支持Java (J2ME/MIDP 1.0)及C++开发 |
| 3.便于简单短周期的开发程序 |
| 4.提供多样性并强大的应用程序开发框架 |
| 5.Series60 v2.x版本提供了对Java (J2ME/MIDP 2.0)及界面主题模式的支持 |
| 6.Symbian OS 8.0提供了对3G网络的支持 |
| SDK版本 |
UID |
Series60 SDK 0.9 (Symbian 6.1) |
Series60 SDK 2.0 (Symbian 7.0) |
Series60 SDK 2.0 (Symbian 8.0) |
| 手机型号 |
UID |
手机型号 |
UID |
手机型号 |
UID |
| Series60 0.9 |
0x101F6F88 |
Nokia 7650 |
0x101F6F87 |
Nokia 6600 |
0x101F7963 |
Nokia 6630 |
0x101F7964 |
| Series60 1.0 |
0x101F795F |
Nokia 3650/3660/3620 |
0x101F7962 |
Nokia 6620 |
0x1020216B |
|
| Series60 1.1 |
0x101F8201 |
Nokia N-Gage |
0x101F8A64 |
Nokia 7610 |
0x101FD5DB |
| Series60 1.2 |
0x101F8202 |
Nokia N-Gage QD |
|
|
| Series60 2.0 |
0x101F7960 |
Siemens SX1 |
0x101F9071 |
| Series60 2.1 |
0x101F9115 |
Sendo-X |
0x101FA031 |
| Series60 2.2 |
0x10200BAB |
BenQ P30 |
0x101FD279 |
| UIQ 2.0 |
0x101F617B |
|
| UIQ 2.1 |
0x101F61CE |
2. 2,0,0是平台的版本号,2是主版本号,0是次版本号,0是build版本号,2,0,0显示的版本就是2.0 注:此处的版本号要根据UID来作相应改动。 例:如果UID是0x101F6F88(Series60 0.9),则主版本号则需要写成0,次版本号也写0即可
提示: ·如果只是希望安装在某一特定机型上(比如N-Gage),则UID处写N-Gage的UID,而平台版本处写0,0,0即可 ·如果希望安装程序能在多个机型上安装(向老版本机型兼容),则UID处写最老那个机型的平台版本的UID,平台版本号处参照上边第2条写 例:假使希望可以安装在N7650,N3650,N-Gage,N-Gage QD,N6600上,则写为(0x101F6F88),0,0,0 3. {"Series60ProductID","Series60ProductID"}是平台类型校验字符串,用来目标机器的平台类型(UIQ或Series或其他类型)
| 平台类型 |
字符串 |
| Nokia Series60 |
Series60ProductID |
| UIQ |
UIQ20PlatformProductID |
如果是单一语言的安装程序,则只写一个字符串即可 如果是多语言安装程序,则需要按语言支持区段的语言顺序来依次(就是按&EN,ZH那个部分的顺序)输入各语言版本下的校验字符串,字符串间用“,”分割 ·单一语言:{"Series60ProductID"} ·多语言:{"Series60ProductID","Series60ProductID"}
由于WDA上大家汉化的软件常见的只有三种类型(其他包括的机型我没有写,因为论坛上几乎没人用) Series60 0.9 & 1.x:包括N7650,N3650,N-GAGE,N-GAGE QD Series60 2.x:包括N6600和N7610 Series60 0.9 & 1.x & Series60 2.x:包括以上所有机型 所以如果上边的暂时不太懂的话,那就照以下两种类型情况下的例子改写即可 Series60 0.9 & 1.x:(0x101F6F88),0,0,0,{"Series60ProductID","Series60ProductID"} Series60 2.x:(0x101F7960),2,0,0,{"Series60ProductID","Series60ProductID"} Series60 0.9 & 1.x & Series60 2.x:(0x101F6F88),0,0,0,{"Series60ProductID","Series60ProductID"}
|
| |
| 文件的安装
格式为 "PCSourceFile(PC端源文件)"-"MobileDestFile(手机端目标文件)",文件类型,操作参数1,操作参数2 以 "D:\sis\files\MyApp.app"-"!:\System\Apps\MyApp\MyApp.app",文件类型,操作参数1,操作参数2 为例 1. PC端源文件可以用相对路径(相对于pkg文件所在路径)也可以用绝对路径 例:假使你的PC端pkg文件在D:\sis,需要打包的PC端文件都在D:\sis\files 相对路径:files\MyApp.app 绝对路径:D:\sis\files\MyApp.app
2. 手机端目标文件就是指定文件将被安装在手机的哪个目录中。 ! 代表目标盘符,如果有文件必须安在手机的 C 盘的话,改为 C 即可 例1:!:\System\Apps\MyApp\MyApp.app 例2:C:\System\Apps\MyApp\MyApp.app 3. 文件类型,操作参数1,操作参数2,如果文件类型未指定(则默认为FILE)时可以省略操作参数;如果操作参数1未指定时(则默认为RUNINSTALL)操作参数2可以省略 例1:"D:\sis\files\MyApp.app"-"!:\System\Apps\MyApp\MyApp.app",文件类型,操作参数1,操作参数2 例2:"D:\sis\files\MyApp.app"-"!:\System\Apps\MyApp\MyApp.app",文件类型,操作参数1 例3:"D:\sis\files\MyApp.app"-"!:\System\Apps\MyApp\MyApp.app",文件类型 例4:"D:\sis\files\MyApp.app"-"!:\System\Apps\MyApp\MyApp.app"
| |
参数值(缩写) |
参数值(全称) |
说明 |
| 文件类型 |
FF |
FILE |
标准程序文件(默认值) |
| FT |
FILETEXT |
文本文件,如果指定了文件为文本类型,则在安装过程中会显示一个窗口来显示文本信息。 如果文本信息窗口的类型不指定,则默认为TEXTCONTINUE 如果指定了文件为文本文件,则手机端目标路径处可以选择留空 (如果你希望该文本文件安装到手机上的话则需填写路径)
|
| 例1: "D:\sis\files\Readme.txt"-"!:\System\Apps\MyApp\Readme.txt",FT |
| 例2: "D:\sis\files\Readme.txt"-"",FT |
| FN |
FILENULL |
卸载指定文件,该类型不需要源文件路径参数 实例(安装时卸载指定路径下的setting.ini文件: ""-"!:\System\Apps\MyApp\setting.ini",FN |
| FM |
FILEMIME |
指定安装文件的MIME类型,我们一般用不到,不做说明 |
| FR |
FILERUN |
指定是运行文件。文件可以是exe文件,app文件或文本文档 如果文件被指定了非FILERUN的类型,则可根据需要省略操作参数1和操作参数2 |
| 文本信息窗口类型 |
TC |
TEXTCONTINUE
|
只显示一个确认按钮,用户按下后会继续程序的安装 |
| TS |
TEXTSKIP
|
显示一个确认按钮和一个取消按钮,用户按下确认按钮会继续安装 按下取消也会继续完成安装程序(但pkg文件内此文件行以下指定的安装文件将不会被安装) |
| TE |
TEXTEXIT
|
显示一个确认按钮和一个退出按钮,用户按下确认按钮会继续安装 按下退出按钮则会退出安装程序(已安装的文件会自动删除) |
| TA |
TEXTABORT
|
显示一个确认按钮和一个退出按钮,用户按下确认按钮会继续安装 按下退出按钮则会退出安装程序(之前已安装的文件不会被删除) |
| 操作参数1 |
RI |
RUNINSTALL
|
指定文件在安装时运行 |
| RR |
RUNREMOVE
|
指定文件在卸载时被运行 |
| RB |
RUNBOTH
|
指定文件在安装时运行,卸载时也运行 |
| 操作参数2 |
RS |
RUNSENDEND
|
运行指定文件,自动运行指定文件,运行完后自动关闭文件来完成安装程序(只有指定为操作参数1为RUNINSTALL参数时才能使用此参数) |
| RW |
RUNWAITEND
|
运行指定文件,等待用户按键确认安装程序的完成 |
4. 安装文件的多语言形式,手机端目标文件不变,PC端源文件按照如下格式书写即可 PC端源文件的顺序要按照语言顺序来依次(就是按&EN,ZH那个部分的顺序)书写(PC端源文件可用空格或换行分隔),字符串间用“,”分割 书写格式:{ "D:\sis\files\MyApp.rEN" "D:\sis\files\MyApp.rZH" }-"!:\System\Apps\MyApp\MyApp.rsc"
|
| |
| 必要组件校验
此段是校验指定的程序(每个程序在安装时都会在手机端C:\System\install下生成一个同安装程序文件名的SIS文件,也就是校验这个SIS文件是否存在)是否存在,如果不存在,则pkg文件内,此行以下的安装文件将不会被安装
例:(0x123456789),1,1,0,{"C Library","C语言运行库"} 1. 0x123456789是指定的SIS文件的UID(用SeleQ查看APP文件属性显示的UID1;用SmartFileMan显示的UID1) 2. 1,1,0是用于校验到SIS文件不存在时,错误提示中显示的版本号(假设C Library的SIS文件不存在,则会提示“C Library 1.1不存在,请安装安装后再安装本程序”)。此版本号不限制文件的校验。 3. {"C Library","C语言运行库"}是用于校验到SIS文件不存在时,错误提示中显示的组件标题。 如果是多语言安装程序,则需要按语言支持区段的语言顺序来依次(就是按&EN,ZH那个部分的顺序)输入各语言版本下的标题,标题名称用“,”分割。
|
| |
可选附加组件 如果包含可选附加组件,则SIS文件类型需要相应变成TYPE=SISOPTION 单语言: !({"Add-on 1 (20kb)"},{"Add-on 2 (20kb)"})
Add-on 1 (20kb)是第1个附加组件的显示标题,Add-on 2 (20kb)是第2个附加组件的显示标题;依此类推可设置多个附加组件
多语言: !({"Add-on 1 (20kb)","附件1 (20kb)"},{"Add-on 2 (20kb)","附件2 (20kb)"}) Add-on 1 (20kb)是第1个附加组件的第1种语言的显示标题,附件1 (20kb)是第1个附加组件的第2种语言的显示标题 Add-on 2 (20kb)是第2个附加组件的第2种语言的显示标题,附件2 (20kb)是第2个附加组件的第2种语言的显示标题 依此类推可设置多个附加组件;多语言安装程序需要按语言支持区段的语言顺序来依次(就是按&EN,ZH那个部分的顺序)输入各语言版本下的标题,标题名称用“,”分割。
|
| |
| 条件判断
如果安装程序内包含可选附加组件,则需要此区段的信息,反之则省略
!({"Add-on 1 (20kb)"},{"Add-on 2 (20kb)"})
IF option1 "PCSourceFile\addon\MyPic1.gif"-"!:\System\Apps\MyApp\addon\MyPic1.gif" ENDIF IF option2 "PCSourceFile\addon\MyPic2.gif"-"!:\System\Apps\MyApp\addon\MyPic2.gif" ENDIF
IF option1和ENDIF之间的信息是选择Add-on 1 (20kb)后的安装结果 IF option2和ENDIF之间的信息是选择Add-on 2 (20kb)后的安装结果 依此类推,有几个附件就按照数字的顺序写几个IF option(Add-on 1,Add-on 2 ,Add-on 3 相应的应该有IF option1,IF option2,IF option3)
|
| |
| 附加SIS文件
在SIS安装程序中附加的SIS安装程序,可以用于条件判断语句之内(如果在条件判断语句之外则会被自动安装) 例: @"D:\sis\files\AutoStart.sis",(0x12345678) D:\sis\files\AutoStart.sis是PC端sis源文件的位置 0x12345678是该SIS文件的UID(用SeleQ查看APP文件属性显示的UID1;用SmartFileMan显示的UID1)
|