强制内嵌SIS文件的版本检查

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号、微信号、电子邮件地址或其他隐私敏感信息,欢迎通过>>博主专用加密工具v2<<加密后发布,原文只有博主可以看到。