Xcode项目的"Build number"

Pet*_*r V 31 iphone xcode ios xcode4

什么是内置编号及其用途?它与版本号是一样的吗?

cda*_*her 20

此外,如果将CFBuildDate作为字符串添加并将CFBuildNumber作为字符串添加到info.plist中,则以下shell脚本(添加到运行脚本构建阶段/ bin/bash时将自动更新您的构建号和日期:

    # Auto Increment Version Script
buildPlist=${INFOPLIST_FILE}
CFBuildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBuildNumber" $buildPlist)
CFBuildNumber=$(($CFBuildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBuildNumber $CFBuildNumber" $buildPlist
CFBuildDate=$(date +%Y%m%d%H%M%S)
/usr/libexec/PlistBuddy -c "Set :CFBuildDate $CFBuildDate" $buildPlist
Run Code Online (Sandbox Code Playgroud)

  • 我改变了在plist中递增CFBuildNumber,将CFBundleVersion设置为`buildNum = \`git log --oneline | wc -l \``从git中提取构建标识符 (3认同)

rma*_*sjr 17

我正在使用Xcode 4.3.3(4E3002)并设法通过以下步骤自动增加每次构建的内部版本号(CFBundleVersion):

  1. 选择菜单项产品/编辑方案...(命令+ <)
  2. 扩展了构建阶段
  3. 选择预执行
  4. 单击加号以添加"新运行脚本操作"
  5. 输入"/ bin/bash"作为"Shell"
  6. 在"提供构建设置"中选择一个目标
  7. 输入以下代码:

    buildPlist=$SRCROOT/$INFOPLIST_FILE
    PlistBuddy="/usr/libexec/PlistBuddy"
    
    CFBundleVersion=`$PlistBuddy -c "Print CFBundleVersion" $buildPlist`
    CFBundleVersion=$(($CFBundleVersion + 1))
    $PlistBuddy -c "Set :CFBundleVersion $CFBundleVersion" $buildPlist
    
    Run Code Online (Sandbox Code Playgroud)

玩得开心!


jem*_*ons 12

许多人使用构建号来跟踪项目"构建"的总次数(简单地为小项目编译,对于较大项目可能涉及一些更复杂的过程).

构建号是每个构建增加的绝对值.另一方面,版本号是用作特定版本号的简写的任意"标签"或"标签".

所以说你已经建立了123次项目,你的内部版本号为"123",但为简单起见,你可能决定将其称为"版本1.0".如果再构建20次来修复错误,那么您的内部版本号为143,但您的版本为"1.01"或"1.1"或您决定命名的任何内容.

我还看到了基于源代码控制的构建号码的项目.因此,CVS/SVN团队可能会使用修订号作为其编号.我也看到了使用最新提交的SHA作为内部版本号的git项目(尽管一些管理工具假设内部版本号是一个增量值 - 显然在SHA的情况下,它不是).


Bde*_*eez 6

内部版本号是一个内部编号,用于指示应用的当前状态.它与版本号的不同之处在于它通常不是面向用户的,并且不表示任何差异/功能/升级,如版本号通常会.

可以这样想:

  • Build(CFBundleVersion):构建的编号.通常,您从1开始,并在应用程序的每个版本中增加1.它可以快速比较哪个版本更新,并且它代表了代码库的进步感.在使用QA并且需要确保针对正确的构建记录错误时,这些可能是非常有价值的.
  • 营销版本(CFBundleShortVersionString) - 用于表示此版本应用的面向用户的号码.通常,这遵循Major.minor版本方案(例如MyAwesomeApp 1.2),以便让用户知道哪些版本是较小的维护更新,哪些是大量新功能.

为了在您的项目中有效地使用它,Apple提供了一个名为agvtool的强大工具.它允许您轻松设置内部版本号和营销版本.它在脚本编写时特别有用(例如,可以轻松更新每个构建版本的内部版本号,甚至可以查询当前构建版本号).它甚至可以做更多奇特的事情,比如在更新内部版本号时为你标记你的SVN.

要使用它:

  • 在版本控制下的Xcode中设置项目,以使用"Apple Generic".
  • 在终端
    • agvtool new-version 1(将Build number设置为1)
    • agvtool new-marketing-version 1.0(将营销版本设置为1.0)

有关大量信息,请参阅agvtool的手册页