美文网首页
CFBundleVersion与CFBundleShortVer

CFBundleVersion与CFBundleShortVer

作者: 高思阳 | 来源:发表于2019-06-18 14: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。
    另外注意,每次发包也要清楚当前这个包的发布版本号是多少。

    相关文章

      网友评论

          本文标题:CFBundleVersion与CFBundleShortVer

          本文链接:https://www.haomeiwen.com/subject/etlfqctx.html