CFBundleVersion与CFBundleShortVer

2019-06-18  本文已影响0人  高思阳

CFBundleVersion:标识内部版本号,如果发包错误时可以将错误的撤回及时更改内部版本号即可。这个是开发时候用的,通过对比服务器上的这个内部版本号(也就是build version),来判断是否需要强制升级。

CFBundleShortVersionString:代表应用的发布版本号,该版本的版本号是三个时期分隔的整数组成的字符串。第一个整数代表重大修改的版本,如实现新的功能或重大变化的修订。第二个整数表示的修订,实现较突出的特点。第三个整数代表维护版本。这个是给用户看的

image

如上图:Version对应的就是CFBundleShortVersionString 发布版本号 如当前上架版本为1.0.0 之后你更新的时候可以改为1.0.1)

Build 对应的就是CFBundleVersion (内部版本号,用以记录开发版本的,每次更新的时候都需要比上一次高 如:当前版本是1.0.1.1 ,下次可以改为:1.0.1.2,也可以是2019061801,也就是日期+当天发包的次数)

举例,内部版本号定为日期+当天发包的次数,如何判断是否强制升级:

+ (NSString *)currentVersion {
    return [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];
}

+ (NSInteger)currentBuildVersion {
    NSString *versionString = [NSBundle mainBundle].infoDictionary[(NSString *)kCFBundleVersionKey];
    return versionString.integerValue;
}

从服务器请求当前服务器上的内部版本号serverBuildVersion,直接跟app中currentBuildVersion进行对比即可,如果服务器的内部版本号高于app的buildVersion,则强制更新。

if (serverBuildVersion > serverBuildVersion)
{
    //强制更新
}

这种规定下,每次发包都要注意修改info.plist中的CFBundleShortVersionString,使其+1。
另外注意,每次发包也要清楚当前这个包的发布版本号是多少。

上一篇下一篇

猜你喜欢

热点阅读