【发布时间】:2018-09-26 18:46:53
【问题描述】:
在我们的项目中,我们从 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 的 Legacy Build System 正确更新。
我在脚本中添加了一些回声,并比较了新系统和旧系统上的构建日志,看不出有任何区别:
echo "git release version:" ${GIT_RELEASE_VERSION}
echo "info path:" ${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH%.*}
echo "grv:" "${GIT_RELEASE_VERSION#*v}"
不确定是否有人在新构建系统中遇到过类似问题?
【问题讨论】:
-
我使用来自gist.github.com/airdrummingfool/ecfa9827f47c5d02af53 的代码,它可以工作:
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $version" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"。不同之处在于将BUILT_PRODUCTS_DIR替换为TARGET_BUILD_DIR。并确保此脚本是运行的最后一步。 -
感谢@Cœur,但更改为
TARGET_BUILD_DIR似乎对我的情况没有帮助 -
谁能发布完整的运行脚本来创建通用目标?
-
@SatishMavani 您的问题与此处的原始问题并不真正相关。你能把它作为一个新线程发布吗?
标签: xcode10