Symbian S60系列---PKG文件范例详解

来源:互联网 发布:机器人算法 编辑:程序博客网 时间:2024/05/21 12:41

  • 运行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文件选项(此处为非必要参数)

    参数值(缩写)参数值(全称)说明SHSHUTDOWNAPPS
    关闭应用程序NCNOCOMPRESS
    不压缩
    5.TYPE=SISAPP是SIS文件的类型(如果未指定,则默认为TYPE=SISAPP

    参数值(缩写)参数值(全称)说明SASISAPP
    标准的安装程序(默认值)SYSISSYSTEM
    此安装程序类型包含系统库或共享库文件注册(DLL或OPX文件),这些库文件在主程序卸载时会一并卸载SOSISOPTION
    此安装程序类型安装时有可选组件,选择安装的组件在主程序卸载时会一并卸载SCSISCONFIG
    此安装程序类型可以配置已存在的程序或服务,此类型打包时不应该包含任何新文件。只能用来配置安装或运行过程中的文件显示及增加新组件等等操作。在程序管理列表中不会显示配置程序的卸载,需要手动卸载SPSISPATCH
    此安装程序类型会修复已存在的的程序,在程序管理列表中不会显示修复程序的卸载,需要手动卸载SUSISUPGRADE
    此安装程序类型可以升级已存在的程序,但在程序管理列表中不会显示升级程序的卸载,需要用户手动删除文件或重新关联程序才能撤销升级兼容性

    此区段用来限制程序是否可以被正确安装在目标机型上(比如防止NOKIA Series60的软件安装在UIQ的机型上,避免造成程序错误)
    (0x101F6F88),0,0,0,{"Series60ProductID","Series60ProductID"}为例说明:
    1.(0x101F6F88)开发平台SDK的UID,也可以用具体机型的UID来限制
    下表给出几个常见机型的平台UID及机型UID(由于能力问题,UID资料可能存在错误或不完全,请见谅)
    以下对Symbian OS几个版本以及Series60的性能做一下概述
    1.屏幕显示象素:176×2082.支持Java (J2ME/MIDP 1.0)及C++开发3.便于简单短周期的开发程序4.提供多样性并强大的应用程序开发框架5.Series60 v2.x版本提供了对Java (J2ME/MIDP 2.0)及界面主题模式的支持6.Symbian OS8.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手机型号UIDSeries60 0.9 0x101F6F88Nokia 76500x101F6F87Nokia 66000x101F7963Nokia 66300x101F7964Series60 1.0 0x101F795FNokia 3650/3660/36200x101F7962Nokia 66200x1020216B Series60 1.1 0x101F8201Nokia N-Gage0x101F8A64Nokia 76100x101FD5DBSeries60 1.2 0x101F8202Nokia N-Gage QD   Series60 2.00x101F7960Siemens SX10x101F9071Series60 2.1 0x101F9115Sendo-X0x101FA031Series60 2.2 0x10200BABBenQ P300x101FD279UIQ 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 Series60ProductIDUIQUIQ20PlatformProductID
    如果是单一语言的安装程序,则只写一个字符串即可
    如果是多语言安装程序,则需要按语言支持区段的语言顺序来依次(就是按&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"-"",FTFNFILENULL卸载指定文件,该类型不需要源文件路径参数
    实例(安装时卸载指定路径下的setting.ini文件:
    ""-"!:/System/Apps/MyApp/setting.ini",FNFMFILEMIME指定安装文件的MIME类型,我们一般用不到,不做说明FRFILERUN指定是运行文件。文件可以是exe文件,app文件或文本文档
    如果文件被指定了非FILERUN的类型,则可根据需要省略操作参数1操作参数2文本信息窗口类型TCTEXTCONTINUE
    只显示一个确认按钮,用户按下后会继续程序的安装TSTEXTSKIP
    显示一个确认按钮和一个取消按钮,用户按下确认按钮会继续安装
    按下取消也会继续完成安装程序(但pkg文件内此文件行以下指定的安装文件将不会被安装)TETEXTEXIT
    显示一个确认按钮和一个退出按钮,用户按下确认按钮会继续安装
    按下退出按钮则会退出安装程序(已安装的文件会自动删除)TATEXTABORT
    显示一个确认按钮和一个退出按钮,用户按下确认按钮会继续安装
    按下退出按钮则会退出安装程序(之前已安装的文件不会被删除)操作参数1RIRUNINSTALL
    指定文件在安装时运行RRRUNREMOVE
    指定文件在卸载时被运行RBRUNBOTH
    指定文件在安装时运行,卸载时也运行操作参数2RSRUNSENDEND
    运行指定文件,自动运行指定文件,运行完后自动关闭文件来完成安装程序(只有指定为操作参数1RUNINSTALL参数时才能使用此参数)RWRUNWAITEND
    运行指定文件,等待用户按键确认安装程序的完成

    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 option1ENDIF之间的信息是选择Add-on 1 (20kb)后的安装结果
    IF option2ENDIF之间的信息是选择Add-on 2 (20kb)后的安装结果
    依此类推,有几个附件就按照数字的顺序写几个IF optionAdd-on 1Add-on 2Add-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

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 太注意小孩考试成绩怎么办 二年级成绩很差怎么办 班级差生应该怎么办 班级差生太多怎么办 初三孩子英语差怎么办 初三英语基础差怎么办 学生学习效率低怎么办 摔伤后皮下血肿怎么办 孩子学习效率低怎么办 很多作业没写完怎么办? 小学孩子成绩差怎么办 孩子脚上起水泡怎么办 小学一年级体育课哑铃怎么办 托福成绩失效后怎么办 去外国旅游不适应怎么办 一年级语文成绩差怎么办 一年级小孩成绩差怎么办 一年级小孩基础差怎么办 一年级小孩语文差怎么办 一年级小孩数学差怎么办 一年级小孩理解能力差怎么办 一年级小孩作文差怎么办 一年级小孩记忆力差怎么办 孩子的记忆力不好怎么办 孩子记忆力不好怎么办呢 小学三年级学生不听话怎么办 司法考试成绩单没打印怎么办 高一200分怎么办 初一孩子语文差怎么办 大学专业没选好怎么办 减肥口渴的厉害怎么办 开胸手术后胸闷气短怎么办 打游戏上网成瘾怎么办 老公打游戏成瘾怎么办 我老是沉迷游戏怎么办 18孩子沉迷游戏怎么办 志愿提交码丢失怎么办 幼儿园报名没进怎么办 考完教师资格证怎么办 两套房改房怎么办 cad打开无响应怎么办