我们使用创建时间戳的脚本并替换应用内部版本号。
#!/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)
当我将框架的Build
号码Current Library Version
的格式更改为1.0.0并使用上面的脚本执行构建而不使用时,构建成功。
问题:如何更改应用的Build
号码仅限,但不框架Current Library Version
号码?
答案 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
个应用程序,有三个组件的限制,以句点分隔,并且可能不超过三个组件。
答案 1 :(得分:0)
让我们以苹果自己的方式做到这一点。 每次成功构建后,它将增加内部版本号
我将指导您浏览5张图像,只需浏览一下即可。
当您选择位于Stop_build_button右侧的项目名称时,从下拉列表中选择“ Edit Scheme ...”。 Check First Step
从左侧菜单中展开“构建”选项,然后选择“后操作” Check Second Step
在这里,您可以添加成功构建程序后要执行的所需代码(脚本)。在这里,我们必须添加少量代码以使我们的自动化完美运行。 >> 1.从左侧选择“添加(+)”按钮以添加新的脚本文件>> 2.现在从下拉列表中选择“新建运行脚本操作” Check Third Step
它具有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”
完成第4步后,只需选择“关闭”以关闭窗口,我们就要做最后一步,在“项目”文件菜单中转到“ plist.info”文件,并确保在“ “键”部分最多包含一个数字值Check Fifth Step