zoukankan      html  css  js  c++  java
  • iOS项目中的version和build

    Version在plist文件中的key是“CFBundleShortVersionString”,标识应用程序的发布版本号,和AppStore上的版本号保持一致。该版本的版本号是三个分隔的整数组成的字符串。第一个整数代表重大修改的版本,如实现新的功能或重大变化的修订。第二个整数表示的修订,实现较突出的特点。第三个整数代表维护版本

    Build在plist文件中的key是“CFBundleVersion”,标示(发布或者未发布)的内部版本号。这是一个单调增加的字符串,包括一个或者多个分割的整数。

    以上两个版本号可以通过以下方式获得:

     NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];

    // app版本
    NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"]; // app build版本 NSString *app_build = [infoDictionary objectForKey:@"CFBundleVersion"];


    编写脚本使Archive后自动增长build版本号

    如果我们想在Archive后build号自动增长,就可以使用到Xcode的run script来实现,步骤是

    1. 选中项目的target,点击“Build Phases“
    2. 点击右下角的”Add Build Phrase“,选择”Add run script“,会产生一个新的Run Script项
    3. 拖拽新生成的Run Script项到最上面
    4. 点开该项,copy下面的shell代码进去,代码来自这里,如下图所示
    if [ $CONFIGURATION == Release ]; then
        echo "Bumping build number..."
        plist=${PROJECT_DIR}/${INFOPLIST_FILE}
    
    	#increment the build number (ie 115 to 116)
        buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")
        if [[ "${buildnum}" == "" ]]; then
            echo "No build number in $plist"
            exit 2
        fi
    
        buildnum=$(expr $buildnum + 1)
        /usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${plist}"
        echo "Bumped build number to $buildnum"
    
    else
        echo $CONFIGURATION " build - Not bumping build number."
    fi

    这段shell脚本的意思就是说,如果当前的配置是Release(Archive时该值为Release,直接在模拟器上运行是Debug),就设置build值为当前build值+1, 否则什么都不干。

    这样在build的时候就会看到build号会自动加1的,想看build时输出的信息,可以通过”View -> Navigators -> Log”来查看最新的build时产生的log。

    什么是BundleVersion

    关于iOS工程的版本设置我们注意到,工程中的Info.Plist配置中有两个字段,BundleVersion和BundleShortVersionString。

    Bundle version 对应Build的参数,为开发和测试使用的。通常我们用整数计,且逐一增加(可以每build一次就增加一次)。而Bundle version string,short 是给用户使用,通常是小数点间隔数表示(如:1.0.2,3.5.12),通常我们将他作为升级的标记。对于开发人员,我们更关心Bundle version的意义。在同版本(Bundle version string,short)下,Bundle version可以是不同的。不同测试包以它为标记来区分,这使得发现问题时能明确测试包的编译版本,进而明确代码版本。也就是说Bundle version能帮助我们更准确高效的定位问题。

    如何使用:

    搜索了一下网上的资料,发现关于设置BuildVersion的增加功能的流程,基本都用到了脚本,脚本的写法略有不同。这里举例是用到了Apple自身的方法:

    好了,可以编译工程试一试。看看你设置的BuildVersion数值是不是有增加。

    关于使用的建议:

    如果是多人开发,会存在每个人开发的分支多次编译导致Build版本不准的情况,但不影响开发进程。对于开发我们需要注意的是每次测试测试前的Build版本。确保它增加,就,可以了!至于是否要release时增加,是否需要手动修改,这个可以根据实际情况调整。毕竟,Build版本号只是一个辅助的参数。

  • 相关阅读:
    objdump man
    python c cpp extention
    http,get,head,post
    三种客户端访问wcf服务端的方法 C#
    使用HttpWebRequest POST 文件,带参数
    ASP.NET MVC3 HtmlHelper用法大全
    Windows安装memcached图文教程(转)
    sort排序应用
    WPA密码攻击宝典
    Bind和Eval的不同用法 (转)
  • 原文地址:https://www.cnblogs.com/muyushifang07/p/4728955.html
Copyright © 2011-2022 走看看