TSS001331
开发伙伴平台:
S60 3rd Edition FP1, S60 3rd Edition FP2
详细描述
当安装程序检查到手机已经装有该SIS文件的相应版本时,会弹出提示警告窗口。但是安装程序并不会检查内嵌的SIS文件版本,即时手机上已经装有该应用程序。
在PKG文件中我们可以确保安装程序只在已安装的内嵌SIS文件版本低于当前版本或之前根本没有安装时覆盖内嵌SIS文件。
解决方案
在PKG文件中需要进行相关设置。可以通过AppProp()函数测试PKG的属性。获得内嵌SIS的主副版本号和编译号。
内嵌SIS的pkg文件
//Normal pkg file statements
; embedded sis version 3.2.5
+(0=3,1=2,2=5)
内嵌SIS版本强制检查 现在我们通过使用approp(packageid, propid)方法确保安装程序只在已安装的内嵌SIS版本低于该内嵌SIS版本时才安装。
Base pkg file
;Normal pkg file formats
;It embedds 3.2.5 embedded.sisx,updates any older progressbar.sisx
; 0xA00001F9 is the package id of the embedded.sisx
IF package(0xA00001F9) ;checks for already installed embedded sis file
if ( (appprop(0xA00001F9,0) <= 3)) ;checking the major release
if ( (appprop(0xA00001F9,1) <= 2)) ;checking the minor release
if ( (appprop(0xA00001F9,2) <= 4)) ;checking the build number
@"embedded.sisx", (0xA00001F9) ;v 3.2.5
endif
endif
endif
ELSE
@"embedded.sisx", (0xA00001F9) ;v 3.2.5
ENDIF
优化 我们可以将把版本号放入一个属性从而避免检查3个不同的属性值
;Normal pkg file statements
; embedded sis version 3.2.5
;(3*1000000+2*1000+5)
+(0=03002005,1=-1,2=-1)
Base pkg file
;It embedds 3.2.5 progressbar.sisx,updates any older progressbar.sisx
IF package(0xA00001F9)
if ( (appprop(0xA00001F9,0) < 3002005));(3*1000000+2*1000+5)
@"progressbar_armv5.sisx", (0xA00001F9) ;v 3.2.5
endif
ELSE
@"progressbar_armv5.sisx", (0xA00001F9) ;v 3.2.5
ENDIF
博主友情提示:
如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。