我不知道哪种方法是最好的,但为了防止任何人在搜索时找不到答案,我将发布苹果公司的回答...
根据这篇苹果公司的问答文章:
使用agvtool自动化版本和构建号
版本和构建号分别指定应用程序的市场版本和内部版本。agvtool是一个命令行工具,允许你自动将这些数字递增到下一个最高数字或特定数字。
构建号标识您的应用程序的未发布或已发布版本。它存储在您的应用程序的Info.plist中作为CFBundleVersion
(Bundle版本)。
您必须在Xcode项目中完成以下步骤:
- 启用agvtool
导航到您目标的“构建设置”面板,然后针对所有构建配置按如下方式进行更新:
你的Xcode项目数据文件project.pbxproj包含一个CURRENT_PROJECT_VERSION(当前项目版本)构建设置,用于指定项目的当前版本。agvtool在project.pbxproj中搜索CURRENT_PROJECT_VERSION。如果存在,则继续运行,否则停止运行。它的值用于更新构建号。
将版本控制系统设置为Apple通用格式。
默认情况下,Xcode不使用任何版本控制系统。将版本控制系统设置为Apple通用格式可确保Xcode将包含所有由agvtool生成的版本信息。
![Set Versioning System to Apple Generic](https://istack.dev59.com/dpKvr.webp)
- 设置您的版本和构建号码
agvtool会在您的应用程序的Info.plist中搜索您的版本和构建号码。如果它们存在,它会更新它们,否则不做任何操作。请确保您的Info.plist中存在CFBundleVersion
(Bundle版本)和CFBundleShortVersionString
(Bundle版本字符串,简短)键,如下图所示:
![Set up your version and build numbers](https://istack.dev59.com/ACHdK.webp)
请退出Xcode,然后在终端应用程序中导航到包含.xcodeproj项目文件的目录,然后再运行以下任何命令。 .xcodeproj项目文件包含由agvtool使用的project.pbxproj。(这是您可以在脚本中而不是命令行中运行的部分。)
更新版本号
要将版本号更新为特定版本,请运行:
xcrun agvtool new-marketing-version <your_specific_version>
Ex: 将版本号更新为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
tools
的目录中,就在.xcodeproj
旁边。 - trojanfoe