Xcode:增加内部版本号

时间:2017-03-24 21:45:46

标签: ios xcode macos ios10 agvtool

我们使用创建时间戳的脚本并替换应用内部版本号。

#!/bin/bash
echo "Update Build Number to Timestamp"
echo "--------------------------------"
# fail on error
set -e
agvtool new-version -all $(date +%Y%m%d%H%M%S)

这会将内部版本号更改为:201703241425

我们为项目引入了内部框架。

上述命令还会替换框架Build编号和Current Library Version。但是,构建失败并出现以下错误:

▸ Linking In-HouseFrameworkLayer

❌  ld: malformed 64-bit a.b.c.d.e version number: 201703241425
❌  clang: error: linker command failed with exit code 1 (use -v to see invocation)

enter image description here

当我将框架的Build号码Current Library Version的格式更改为1.0.0并使用上面的脚本执行构建而不使用时,构建成功。

问题:如何更改应用的Build号码仅限,但框架Current Library Version号码?

2 个答案:

答案 0 :(得分:2)

显然该应用使用CFBundleVersion + $(CURRENT_PROJECT_VERSION);库/框架应该使用(Current Library Version) + $(DYLIB_CURRENT_VERSION)

默认设置为$(CURRENT_PROJECT_VERSION),因此您需要将其更改为$(DYLIB_CURRENT_VERSION)字符串。

  

重要:对于macOS应用,即使在不同版本中,内部版本号也必须单调增加。换句话说,对于macOS   应用程序不能在不同的版本中再次使用相同的内部版本号   列车。 iOS应用程序没有此类限制,您可以重复使用它   在不同的释放列车中再次建立数字。

版本号或内部版本号的值必须仅包含'。和数字,并且必须以数字开头和结尾。由句点分隔的每个整数值是版本的组成部分。版本号或内部版本号中的最大字符数不能超过十八个字符。

<强>的iOS  版本号和内部版本号可能有三个或更多组件,但整个版本号或内部版本号的最大大小不得超过十八个字符。

macOS 应用程序比iOS应用程序更具限制性。对于macOS个应用程序,有三个组件的限制,以句点分隔,并且可能不超过三个组件。

Version Numbers and Build Numbers

Automating Version and Build Numbers Using agvtool

答案 1 :(得分:0)

让我们以苹果自己的方式做到这一点。 每次成功构建后,它将增加内部版本号

我将指导您浏览5张图像,只需浏览一下即可。

  1. 当您选择位于Stop_build_button右侧的项目名称时,从下拉列表中选择“ Edit Scheme ...”。 Check First Step

  2. 从左侧菜单中展开“构建”选项,然后选择“后操作” Check Second Step

  3. 在这里,您可以添加成功构建程序后要执行的所需代码(脚本)。在这里,我们必须添加少量代码以使我们的自动化完美运行。 >> 1.从左侧选择“添加(+)”按钮以添加新的脚本文件>> 2.现在从下拉列表中选择“新建运行脚本操作” Check Third Step

  4. 它具有3个字段>> 1.已经为您分配了外壳>> 2.现在用于“从以下位置提供构建设置”中选择您的项目名称。 >> 3.有一个大字段可以添加您的脚本,只需将以下代码复制并粘贴到此处即可:Check Fourth Step

    PLIST =“ $ {PROJECT_DIR} / $ {INFOPLIST_FILE}” PLB = / usr / libexec / PlistBuddy LAST_NUMBER = $($ PLB -c“打印CFBundleVersion”“ $ PLIST”) NEW_VERSION = $((($ LAST_NUMBER + 1)) $ PLB -c“设置:CFBundleVersion $ NEW_VERSION”“ $ PLIST”

  5. 完成第4步后,只需选择“关闭”以关闭窗口,我们就要做最后一步,在“项目”文件菜单中转到“ plist.info”文件,并确保在“ “键”部分最多包含一个数字值Check Fifth Step