【问题标题】:How can I get the "Archive Name" (in Edit Scheme/Archive/Archive Name) dynamically with the CFBundleShortVersionString in suffix?如何使用后缀中的 CFBundleShortVersionString 动态获取“存档名称”(在编辑方案/存档/存档名称中)?
【发布时间】:2017-05-19 20:24:14
【问题描述】:

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

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

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

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

#!/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 存档名称的是“编辑方案/存档/存档名称”部分,该部分默认采用方案名称。因此,如果您想在名称 ipa 中看到该值,则必须更改存档名称或直接更改方案的值。

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

【问题讨论】:

    标签: ios xcode build scheme xcode8


    【解决方案1】:

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

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

    【讨论】:

    • 解决方案非常有趣,但我的问题是我使用了一个自动递增构建和版本的脚本。为了更清楚,我将脚本的代码放在原始问题中。
    • 我不认为我可以同时使用?
    • 有趣。尝试在该脚本中更新 APP_VERSION 并检查是否在 Info.plist 中应用了新内容。 APP_VERSION="$Version"
    • 很遗憾,我只是测试了所有内容,问题是Product Name部分没有更改ipa的名称。唯一改变它的是编辑方案/存档/存档名称中的“存档名称”,默认情况下它采用方案名称的值。事实上,更改 ipa 名称的唯一方法是更改​​该值,或更改方案名称。无论如何通过在后缀中添加 CFBundleShortVersionString 来动态更改方案的名称?
    • 好吧,可执行文件的名称和 IPA 的名称是两个不同的东西。要自动控制 IPA 文件的命名,您必须使用 xcodebuild clean build archive 和 xcodebuild -exportArchive 进行命令行构建。请参阅 man xcodebuild。或者,您可以考虑使用像 Jenkins 这样的 CI 系统,它可以为您处理 ipa 命名
    猜你喜欢
    • 2015-01-23
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 2021-03-21
    • 1970-01-01
    • 2017-05-31
    相关资源
    最近更新 更多