2

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

#!/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

4

3 回答 3

3

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

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

重要提示:对于 macOS 应用程序,即使在不同版本之间,内部版本号也必须单调增加。换句话说,对于 macOS 应用程序,您不能在不同的发布序列中再次使用相同的内部版本号。iOS 应用程序没有这样的限制,您可以在不同的发布序列中再次重复使用相同的内部版本号。

版本号或内部版本号的值必须仅由“.”和数字组成,并且必须以数字开头和结尾。每个由句点分隔的整数值是版本的一个组成部分。您的版本号或内部版本号中的最大字符数总共不能超过 18 个字符。

iOS 版本号和内部版本号可能包含三个或更多组件,但整个版本号或内部版本号的最大大小不得超过 18 个字符。

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

版本号和内部版本号

↳ 使用agvtool自动化版本和内部版本号

于 2017-03-24T23:08:23.490 回答
1

让我们以苹果自己的方式来做这件事。每次成功构建后都会增加构建号

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

  1. 当您选择位于 Stop_build_button 右侧的项目名称时,从下拉列表中选择“编辑方案...”。 检查第一步

  2. 从左侧菜单展开“构建”选项并选择“后操作” 检查第二步

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

  4. 它有 3 个字段 >> 1. 已经为您分配了外壳 >> 2. 现在为“提供您的构建设置”选择您的项目名称。>> 3. 添加脚本有一个很大的字段,只需复制并粘贴此代码即可:检查第四步

    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. 完成第四步后,只需选择“关闭”关闭窗口,我们必须执行最后一步,转到项目文件菜单中的“plist.info”文件,并确保“密钥”部分下的“捆绑版本”密钥最包含数值检查第五步

于 2020-04-03T03:11:21.273 回答
0

如果您想在 Info.plist 中为 CFBundleShortVersionString 保留 $(MARKETING_VERSION) 但想在成功存档或构建后增加版本,那么使用以下脚本以下脚本会将应用程序版本(如 1.0 到 2.0)增加,但当然可以修改逻辑以允许比如说,向应用程序版本添加 1 个小数,甚至增加小数或小/补丁或小数的主要部分,甚至您可以同时增加版本号和内部版本号,但您必须从其他容易获得的脚本中学习并相应地修改

增加应用程序版本的脚本

于 2022-02-04T21:41:07.217 回答