我希望自动将构建日期和构建号添加到我的 Info.plist 文件中,仅用于我为 iOS 归档应用程序的构建。
我的脚本如下
#!/bin/bash
# This was taken from variations from:
# http://davedelong.com/blog/2009/04/15/incrementing-build-numbers-xcode
if [ "$CONFIGURATION" != "Release" ]
then
exit
fi
buildPlist="$SRCROOT/$PROJECT_NAME/$PROJECT_NAME-Info.plist"
# Get the existing buildVersion and buildNumber values from the buildPlist
buildVersion=$(/usr/libexec/PlistBuddy -c "Print CFBuildVersion" "$buildPlist")
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBuildNumber" "$buildPlist")
buildDate=$(date "+%s")
# Increment the buildNumber
buildNumber=$(($buildNumber + 1))
# Set the version numbers in the buildPlist
/usr/libexec/PlistBuddy -c "Set :CFBuildNumber $buildNumber" "$buildPlist"
/usr/libexec/PlistBuddy -c "Set :CFBuildDate $buildDate" "$buildPlist"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildVersion.$buildNumber" "$buildPlist"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $buildVersion.$buildNumber" "$buildPlist"
/usr/libexec/PlistBuddy -c "Set :CFBundleLongVersionString $buildVersion.$buildNumber.$buildDate" "$buildPlist"
这里的一切都很好,我让这个脚本在构建阶段选项卡中的目标依赖项之后作为构建阶段运行。
我遇到的唯一问题是该项目似乎是使用 Info.plist 的旧值而不是新值构建的。
换句话说,如果我归档应用程序并检查生成的 ipa 中的 Info.plist 文件,它们会反映旧值。然而,查看项目中的 Info.plist 表明该脚本确实正确执行,但没有及时使用旧的 Info.plist 构建项目。
有什么解决办法吗?
这似乎可以相对容易地解决,但令我惊讶的是,在关于该主题的文章中没有那么多人询问这个问题。