我不知道哪种方法是最好的,但是我会发布苹果的答案,以防万一有人在搜索...
根据苹果公司的问答环节:
使用agvtool自动执行版本和内部版本号
版本号和内部版本号分别指定应用程序的市场版本和内部版本。agvtool是一个命令行工具,可让您自动将这些数字递增到下一个最高数字或特定数字。
内部版本号标识应用程序的未发布或已发布版本。它作为CFBundleVersion
(捆绑版)存储在应用程序的Info.plist中。
您必须在Xcode项目中完成以下步骤:
- 启用agvtool
导航到目标的“构建设置”窗格,然后为所有构建配置更新它,如下所示:
Xcode项目数据文件project.pbxproj包含一个CURRENT_PROJECT_VERSION
(当前项目版本)构建设置,该设置指定项目的当前版本。agvtool在project.pbxproj中搜索CURRENT_PROJECT_VERSION
。如果CURRENT_PROJECT_VERSION
存在,它将继续运行,否则将停止运行。其值用于更新内部版本号。
- 将Versioning System设置为Apple Generic。
默认情况下,Xcode不使用任何版本系统。将Versioning System设置为Apple Generic可确保Xcode将在项目中包含所有由agvtool生成的版本信息。
- 设置您的版本并建立编号
agvtool在应用程序的Info.plist中搜索您的版本和内部版本号。如果它们存在,它将更新它们,否则不执行任何操作。确保CFBundleVersion
(捆绑包版本)和CFBundleShortVersionString
(捆绑包版本字符串,简称)键存在于Info.plist中,如下图所示:
退出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