欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS 项目中的version和build 详解

程序员文章站 2023-12-22 10:36:10
ios 项目中的version和build version在plist文件中的key是“cfbundleshortversionstring”,标识应用程序的发布版本号...

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。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:

下一篇: