`
tansitongba
  • 浏览: 482211 次
文章分类
社区版块
存档分类
最新评论

SIS 打包 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

SH,NC是SIS文件选项(此处为非必要参数)
SH SHUTDOWNAPPS 关闭应用程序
NC NOCOMPRESS 不压缩

TYPE=SISAPP是SIS文件的类型(如果未指定,则默认为TYPE=SISAPP)
SA SISAPP 标准的安装程序(默认值)
SY SISSYSTEM 此安装程序类型包含系统库或共享库文件注册(DLL或OPX文件),这些库文件在主程序卸载时会一并卸载
SO SISOPTION 此安装程序类型安装时有可选组件,选择安装的组件在主程序卸载时会一并卸载
SC SISCONFIG 此安装程序类型可以配置已存在的程序或服务,此类型打包时不应该包含任何新文件。只能用来配置安装或运行过程中的文件显示及增加新组件等等操作。在程序管理列表中不会显示配置程序的卸载,需要手动卸载
SP SISPATCH 此安装程序类型会修复已存在的的程序,在程序管理列表中不会显示修复程序的卸载,需要手动卸载
SU SISUPGRADE 此安装程序类型可以升级已存在的程序,但在程序管理列表中不会显示升级程序的卸载,需要用户手动删除文件或重新关联程序才能撤销升级

以(0x101F6F88),0,0,0,{"Series60ProductID","Series60ProductID"}为例说明:
1. (0x101F6F88)是开发平台SDK的UID,也可以用具体机型的UID来限制
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
3. {"Series60ProductID","Series60ProductID"}是平台类型校验字符串,用来目标机器的平台类型(UIQ或Series或其他类型)
Nokia Series60 Series60ProductID
UIQ UIQ20PlatformProductID
"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 运行指定文件,自动运行指定文件,运行完后自动关闭文件来完成安装程序(只有指定为操作参数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 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)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics