使用agvtool
自动化版本号和编译号
版本和内部版本号码Key
分别指定市场和应用程序的内部版本。agvtool是一个命令行工具,它允许你这些数字自动递增到下一个最高号码或特定号码。
本文档提供循序渐进的方式操作指示使用更新版本和版本号agvtool
。
改Xcode
和Command Line
分别是Xcode
和Command Line
操作步骤。
版本号,这是显示你的应用程序的用户数量,标识您的应用程序的发布版本。它存储在在应用程序的
Info.plist
作为CFBundleShortVersionString
(版本字符串,short类型
)
内部版本号标识您的应用程序的一个未发布的和发布的版本。它存储在在应用程序的Info.plist
为CFBundleVersion
(Bundle version),可以看更多的key
参见图1展示的版本号和App Store应用程序的版本号,分别为1.3和201.4为例
1 . App Store的应用程序版本号和编号
Paste_Image.png
当你的应用程序包括多个
Target
,agvtool将设置所有目标的版本号相同数字
Xcode
必须先完成在Xcode项目执行以下步骤
1.让agvtool
可见
导航到你的Target
的Build Setting
面板,然后更新您的所有构建配置如下
- 设置
Current Project Version
为你选择的值
Xcode项目的数据文件,project.pbxproj,包括CURRENT_PROJECT_VERSION(当前工程版本)构建设置,指定项目的当前版本
agvtool搜索project.pbxproj为CURRENT_PROJECT_VERSION字段。如果CURRENT_PROJECT_VERSION
将继续运行,否则将停止运行。
它的值是用来更新Build
号。
当前项目版本的值必须是整数或浮点数,如34.6,如果是新项目必须设置为1。
- 前往
通用
设置Versioning System
默认Xcode不试用任何的版本系统,设置版本系统苹果一般保证的xcode将包含项目中的所有agvtool生成的版本信息。 图2 设置当前项目版本和版本系统构建设置
Paste_Image.png
设置您的版本号和编译号
agvtool
将在你的应用程序的info.plist
搜索版本号和编译号。如果存在就更新他们,如果不存在就什么都不做。确保CFBundleVersion
(版本号)和CFBundleShortVersionString
(编译号)如图3所示的键值在Info.plist
里面
- 图3 在Info面板中版本号和编号
Paste_Image.png
该DYLIB CURRENT_VERSION(当前库版本)构建设置指定库或框架的当前构建的版本.如果您正在构建一个
Library Framework
,一定要按照上面的步骤,并确保你的Target
的生成设置面板中包含此设置
命令行
退出xcode,然后导航到包含.xcodeproj项目文件该目录在终端应用程序的运行下列命令,该.xcodeproj项目文件包含project.pbxproj,被agvtool
用。
更新版本号
要更新的版本号为特定的版本,运行
代码语言:javascript复制agvtool new-marketing-version <your_specific_version>
其中,<your_specific_version>
是一个数字如清单1中所看到你选择的.
更新的版本号为2.0
代码语言:javascript复制$ xcrun agvtool new-marketing-version 2.0
Setting CFBundleShortVersionString of project MyProject to:
2.0.
Updating CFBundleShortVersionString in Info.plist(s)...
Updated CFBundleShortVersionString in "MyProject.xcodeproj/../MyProject/MyProject-Info.plist" to 2.0
更新Build
版本
自动递增的Build
版本号,运行
agvtool next-version -all
自动递增的内部版本号到下一个最大整数
代码语言:javascript复制$ xcrun agvtool next-version -all
Setting version of project MyProject to:
2.
Also setting CFBundleVersion key (assuming it exists)
Updating CFBundleVersion in Info.plist(s)...
Updated CFBundleVersion in "MyProject.xcodeproj/../MyProject/MyProject-Info.plist" to 2
运行
agvtool next-version -all
到下一个最大整数值。例如,它会更新2〜3和1.3至2。
要设置应用程序的版本号为特定的版本,运行
代码语言:javascript复制agvtool new-version -all <your_specific_version>
<your_specific_version>
是你选择的
设置Build
版本为2.6.9
$ xcrun agvtool new-version -all 2.6.9
Setting version of project MyProject to:
2.6.9
Also setting CFBundleVersion key (assuming it exists)
Updating CFBundleVersion in Info.plist(s)...
Updated CFBundleVersion in "MyProject.xcodeproj/../MyProject/MyProject-Info.plist" to 2.6.9
查看版本号
要查看当前版本号,运行
代码语言:javascript复制agvtool what-marketing-version
显示当前版本号
代码语言:javascript复制$ xcrun agvtool what-marketing-version
No marketing version number (CFBundleShortVersionString) found for Jambase targets.
Looking for marketing version in native targets...
Looking for marketing version (CFBundleShortVersionString) in native targets...
Found CFBundleShortVersionString of "2.0" in "MyProject.xcodeproj/../MyProject/MyProject-Info.plist"
要查看当前版本号,运行
代码语言:javascript复制agvtool what-version
显示当前Build
版本
$ xcrun agvtool what-version
Current version of project MyProject is:
2.2