我不知道哪种方式最好,但我会发布Apple的答案以防万一有人在搜索它......
根据这篇Apple 的问答帖:
使用 agvtool 自动化版本和内部版本号
版本和内部版本号键分别指定应用程序的营销和内部版本。agvtool 是一个命令行工具,可让您自动将这些数字增加到下一个最高数字或特定数字。
内部版本号标识应用程序的未发布或已发布版本。CFBundleVersion
它以(Bundle 版本)的形式存储在应用程序的 Info.plist 中。
您必须在 Xcode 项目中完成以下步骤:
- 启用 agvtool
导航到目标的“构建设置”窗格,然后为所有构建配置更新它,如下所示:
您的 Xcode 项目数据文件 project.pbxproj 包含一个CURRENT_PROJECT_VERSION
(当前项目版本)构建设置,它指定项目的当前版本。agvtool 在 project.pbxproj 中搜索CURRENT_PROJECT_VERSION
. 如果CURRENT_PROJECT_VERSION
存在则继续运行,否则停止运行。它的值用于更新内部版本号。
- 将版本控制系统设置为 Apple Generic。
默认情况下,Xcode 不使用任何版本控制系统。将版本控制系统设置为 Apple Generic 可确保 Xcode 将所有 agvtool 生成的版本信息包含在您的项目中。
- 设置您的版本和内部版本号
agvtool 在您的应用程序的 Info.plist 中搜索您的版本和内部版本号。如果它们存在,它会更新它们,否则什么都不做。确保Info.plist 中存在CFBundleVersion
(Bundle version) 和CFBundleShortVersionString
(Bundle versions string, short) 键,如下图所示:
退出 Xcode,然后在终端应用程序中导航到包含 .xcodeproj 项目文件的目录,然后再运行以下任何命令。.xcodeproj 项目文件包含被agvtool 使用的project.pbxproj。(这是您可以在脚本而不是命令行中运行的部分。)
更新版本号
要将版本号更新为特定版本,请运行
xcrun agvtool new-marketing-version <your_specific_version>
例如:将版本号更新为 2.0
xcrun agvtool new-marketing-version 2.0
更新内部版本号
要自动增加内部版本号,请运行
xcrun agvtool next-version -all
要将应用程序的内部版本号设置为特定版本,请运行
xcrun agvtool new-version -all <your_specific_version>
例如:将内部版本号设置为 2.6.9
xcrun agvtool new-version -all 2.6.9
奖金:
要查看当前版本号,请运行
xcrun agvtool what-marketing-version
要查看当前的内部版本号,请运行
xcrun agvtool what-version