gpt4 book ai didi

xcode10 - Xcode 10 构建阶段 Shell 脚本

转载 作者:行者123 更新时间:2023-12-02 13:32:21 26 4
gpt4 key购买 nike

在我们的项目中,我们从 git tag 等获取发布版本,然后使用如下 shell 脚本将其写入构建文件夹的 Info.plist:

GIT_RELEASE_VERSION=$(一些 git 命令)
默认写入 "${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH%.*}""CFBundleShortVersionString""${GIT_RELEASE_VERSION#*v}"

这对于所有过去的 Xcode 版本都运行良好,但在 Xcode 10 的新构建系统中,这无法实际更新 info.list 文件中的 CFBundleShortVersionString。不过,该值已使用 Xcode 10 的旧版构建系统正确更新。

我在脚本中添加了一些回显,并比较了新系统和旧系统上的构建日志,看不到任何差异:

echo "git 发布版本:"${GIT_RELEASE_VERSION}
echo "信息路径:"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH%.*}
回声“grv:”“$ {GIT_RELEASE_VERSION#*v}”

不确定是否有人在使用新构建系统时遇到类似问题?

最佳答案

问题似乎在于有时您的运行脚本阶段会在Xcode创建Info.plist之前执行。如果您想确保脚本阶段在特定步骤之后运行,则需要使用输入来标记您的依赖项。

例如,添加:

$(TARGET_BUILD_DIR)/$(INFOPLIST_PATH)

作为脚本阶段的输入,应强制执行您正在寻找的顺序:Xcode 将创建 Info.plist,之后的某个时间,您的脚本将执行并修改 Info.plist .

针对 Xcode 14 进行编辑 - J Nozzi

根据下面的评论,上面的内容并不完全适合我,因为它一直声称它会在每个构建中运行。将 $(DERIVED_FILE_DIR)/$(INFOPLIST_PATH) 添加到输出文件列表中有效。

关于xcode10 - Xcode 10 构建阶段 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com