PKG文件范例详解

米度软件:www.midosoft.cn

 

运行maker.bat即可编译位于安装目录下的myapp.pkg,编译成功后将会在目录内产生一个myapp.sis文件,若编译失败(未有sis文件生成),请查看目录内生成的report.txt的错误报告

深红粗体字为注释。注:标识了(非必要)的区段在未设置信息时可以省略不写,其他区段则不可省略。
;编译信息开始(文件内注释用 ; 号来标识,如果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版本UIDSeries60 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 0x101F6F88Nokia 76500x101F6F87Nokia 66000x101F7963Nokia 66300x101F7964
Series60 1.0 0x101F795FNokia 3650/3660/36200x101F7962Nokia 66200x1020216B 
Series60 1.1 0x101F8201Nokia N-Gage0x101F8A64Nokia 76100x101FD5DB
Series60 1.2 0x101F8202Nokia N-Gage QD   
Series60 2.00x101F7960Siemens SX10x101F9071
Series60 2.1 0x101F9115Sendo-X0x101FA031
Series60 2.2 0x10200BABBenQ P300x101FD279
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
UIQUIQ20PlatformProductID

如果是单一语言的安装程序,则只写一个字符串即可
如果是多语言安装程序,则需要按语言支持区段的语言顺序来依次(就是按&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"

 参数值(缩写)参数值(全称)说明
文件类型FFFILE标准程序文件(默认值)
FTFILETEXT文本文件,如果指定了文件为文本类型,则在安装过程中会显示一个窗口来显示文本信息。
如果文本信息窗口的类型不指定,则默认为TEXTCONTINUE
如果指定了文件为文本文件,则手机端目标路径处可以选择留空
(如果你希望该文本文件安装到手机上的话则需填写路径)
例1: "D:/sis/files/Readme.txt"-"!:/System/Apps/MyApp/Readme.txt",FT
例2: "D:/sis/files/Readme.txt"-"",FT
FNFILENULL卸载指定文件,该类型不需要源文件路径参数
实例(安装时卸载指定路径下的setting.ini文件:
""-"!:/System/Apps/MyApp/setting.ini",FN
FMFILEMIME指定安装文件的MIME类型,我们一般用不到,不做说明
FRFILERUN指定是运行文件。文件可以是exe文件,app文件或文本文档
如果文件被指定了非FILERUN的类型,则可根据需要省略操作参数1操作参数2
文本信息窗口类型TC

TEXTCONTINUE

只显示一个确认按钮,用户按下后会继续程序的安装
TS

TEXTSKIP

显示一个确认按钮和一个取消按钮,用户按下确认按钮会继续安装
按下取消也会继续完成安装程序(但pkg文件内此文件行以下指定的安装文件将不会被安装)
TE

TEXTEXIT

显示一个确认按钮和一个退出按钮,用户按下确认按钮会继续安装
按下退出按钮则会退出安装程序(已安装的文件会自动删除)
TA

TEXTABORT

显示一个确认按钮和一个退出按钮,用户按下确认按钮会继续安装
按下退出按钮则会退出安装程序(之前已安装的文件不会被删除)
操作参数1RI

RUNINSTALL

指定文件在安装时运行
RR

RUNREMOVE

指定文件在卸载时被运行
RB

RUNBOTH

指定文件在安装时运行,卸载时也运行
操作参数2RS

RUNSENDEND

运行指定文件,自动运行指定文件,运行完后自动关闭文件来完成安装程序(只有指定为操作参数1RUNINSTALL参数时才能使用此参数)
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 option
1
"
PCSourceFile/addon/MyPic1.gif"-"!:/System/Apps/MyApp/addon/MyPic1.gif"
ENDIF
IF option
2
"
PCSourceFile/addon/MyPic2.gif"-"!:/System/Apps/MyApp/addon/MyPic2.gif"
ENDIF


IF option
1ENDIF之间的信息是选择Add-on 1 (20kb)后的安装结果
IF option2ENDIF之间的信息是选择Add-on 2 (20kb)后的安装结果
依此类推,有几个附件就按照数字的顺序写几个IF optionAdd-on 1Add-on 2 Add-on 3 相应的应该有IF option1IF option2IF option3
 
附加SIS文件

在SIS安装程序中附加的SIS安装程序,可以用于条件判断语句之内(如果在条件判断语句之外则会被自动安装)
例: @"D:/sis/files/AutoStart.sis",(0x12345678)
D:/sis/files/AutoStart.sisPC端SIS源文件的位置
0x12345678是该SIS文件的UID(用SeleQ查看APP文件属性显示的UID1;用SmartFileMan显示的UID1

 

 

米度软件:www.midosoft.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值