在我们的项目中,我们从 git tag 等派生我们的发布版本,然后使用如下 shell 脚本将其写入构建文件夹的 Info.plist:
GIT_RELEASE_VERSION=$(some git command)
defaults write "${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH%.*}" "CFBundleShortVersionString" "${GIT_RELEASE_VERSION#*v}"
这适用于所有过去的 Xcode 版本,但在 Xcode 10 的新构建系统中,这未能实际更新 info.list 文件中的 CFBundleShortVersionString。不过,该值已使用 Xcode 10 的旧版构建系统正确更新。
我在脚本中添加了一些 echo 并比较了新系统和旧系统上的构建日志,看不出任何区别:
echo "git release version:" ${GIT_RELEASE_VERSION}
echo "info path:" ${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH%.*}
echo "grv:" "${GIT_RELEASE_VERSION#*v}"
不确定是否有人在 New Build System 上遇到过类似的问题?
小智 12
问题似乎是有时您Run Script Phase会在 Xcode 创建之前执行Info.plist. 如果您想确保您的脚本阶段在特定步骤之后运行,您需要使用输入来标记您的依赖项。
例如,添加:
$(TARGET_BUILD_DIR)/$(INFOPLIST_PATH)
作为脚本阶段的输入应该强制执行您正在寻找的顺序:Xcode 将创建Info.plist,之后的某个时间,您的脚本将执行并修改Info.plist.
| 归档时间: |
|
| 查看次数: |
4495 次 |
| 最近记录: |