Bundle version VS Bundle versions string

本文探讨了iOS应用中Bundle Version (CFBundleVersion)与Bundle Version String (CFBundleShortVersionString)的区别。Bundle Version是内部版本号,可以是任意数字,而Bundle Version String是公开的版本号,需符合特定格式并与iTunes Connect一致。在Xcode中,可以通过设置Info.plist和添加自增脚本来自动管理这两者的版本号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天上传新版本,在修改Bundle version和Bundle versions string的时候突然想到:一直以来都没有深究过这两个字段的真正含义,只是保持它们一样。那么它们真正的用途到底是什么呢?今天来探究一下。

区别

Bundle Version (CFBundleVersion)

  • Bundle Version是应用程序的内部版本号。
  • Bundle Version不需要是一个纯粹的版本号,它可以是1234,也可以是1.2.3(Build 12345AB)

Bundle Version String (CFBundleShortVersionString)

  • Bundle versions string 是应用程序公开可见的版本号。例如,你每次迭代一个内部测试版本时,都会生成一个版本号,这个版本号可能是2.0.0.12345b7,但是你不想让其公开可见,所以你设置应用程序的短版本号为2.0。
  • 必须与用于iTunes Connect的版本号保持一致。
  • Bundle Version String不能超过三个部分。例如:2.0.1是可以的,但是2.0.0.1是不可以的。
  • 当Bundle Version String缺省时,Bundle Version替代Bundle Version String的功能,同时也继承他的限制(比如格式,位数等),展示在AppStore中。

Xcode 设置自增编译版本号

步骤:
1. Info.plist 中设置Bundle Version String;
2. Info.plist中Bundle version设置为数字 比如1,如果设置为其它,则可能会编译错误;
3. 添加脚本
1. TARGETS -> Build Phases
2. 点击左上角的‘+’,在弹出的选择框中点击New Run Script Phase,如下图:
图1
3. 在Run script中添加以下脚本:

version=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $PRODUCT_SETTINGS_PATH`
version=`expr $version + 1`
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $version" $PRODUCT_SETTINGS_PATH
#/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $version" $PRODUCT_SETTINGS_PATH 这行代码会让version也自增,一般不需要

如图:
图1

OK,这样设置以后,每次编译,Build version都会自增1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值