如何使用后缀中的CFBundleShortVersionString动态获取“归档名称”(在编辑方案/归档/归档名称中)?

时间:2017-01-05 10:26:44

标签: ios xcode build scheme xcode8

与($(PRODUCT_NAME),$(EXECUTABLE_NAME),$(PRODUCT_BUNDLE_IDENTIFIER))相同,是否可以使用版本号获取文件的可执行文件名(在Info.plist中)(例如$ VERSION或类似的东西)?

目前,我有$(TARGET_NAME),我想添加版本号(CFBundleShortVersionString)。示例:Name_of_the_App_v1.45.ipa

如下图所示更改“产品名称”不起作用: enter image description here

有关信息,我使用该脚本自动增加“构建阶段/运行脚本”中的构建和版本。

#!/bin/bash
rm -rf build

Build=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
Build=$(($Build + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $Build" "$INFOPLIST_FILE"

Version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
Version=$(echo "scale=2; $Version + 0.01" | bc)
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $Version" "$INFOPLIST_FILE"

更改ipa存档名称的唯一方法是“编辑方案/存档/存档名称”部分,该部分默认采用Scheme的名称。因此,如果要在名称ipa中查看该值,则必须更改存档名称或直接更改Scheme的值。 enter image description here

如何动态修改存档名称,直接在“运行脚本”部分或其他任何位置添加后缀中的CFBundleShortVersionString ? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

可以通过向目标添加用户定义的构建设置来实现。单击项目 - >目标名称 - >构建设置 - >加按钮 - >名称:APP_VERSION,值:1.0.0。然后,新定义的构建设置可用作Info.plist中的预处理器变量$(APP_VERSION)。

为清楚起见,您还应将CFBundleShortVersionString设置为该变量,因此两个Info.plist-Entries将始终包含相同的版本字符串。