Xcode 的 iOS 项目的版本号设置
Version & Build 号
今天对 Xcode 里 iOS 的版本号又有了新的认识,一个叫做 Version,一个叫做 Build,这两个值都可以在 Xcode 中选中 target,点击 “Summary” 后看到。 Version 在 plist 文件中的 key 是 “CFBundleShortVersionString”,和 AppStore 上的版本号保持一致,Build 在 plist 中的 key 是 “CFBundleVersion”,代表 build 的版本号,该值每次 build 之后都应该增加 1。这两个值都可以在程序中通过下面的代码获得:
1 | [[[NSBundle mainBundle] infoDictionary] valueForKey:@"key"] |
### Archive后自动增长build号 除此之外,如果我们想在Archive后build号自动增长,就可以使用到Xcode的run script来实现,步骤是
- 选中项目的 target,点击 “Build Phases“
- 点击右下角的”Add Build Phrase“,选择”Add run script“,会产生一个新的 Run Script 项
- 拖拽新生成的 Run Script 项到最上面
- 点开该项,copy 下面的 shell 代码进去,代码来自 [这里](http://stackoverflow.com/questions/9855955/xcode-increment-
build-number-only-during-archive?answertab=active#tab-top),如下图所示
1 | if [ $CONFIGURATION == Release ]; then |
这段 shell 脚本的意思就是说,如果当前的配置是 Release(Archive 时该值为 Release,直接在模拟器上运行是 Debug),就设置 build 值为当前 build 值 + 1, 否则什么都不干。
这样在 build 的时候就会看到 build 号会自动加 1 的,想看 build 时输出的信息,可以通过”View -> Navigators -> Log” 来查看最新的 build 时产生的 log。
Ref:
- Concurrent Debug, Beta and App Store Builds
- stackoverflow: Xcode-Increment build number only during ARCHIVE?
Have fun!