通过自定义脚本,我在构建和运行应用程序时更新了我的 app-info.plist 中的 CFBundleVersion。此信息也用于应用程序中以显示应用程序名称和版本。更新在构建过程中运行良好,但不幸的是旧信息是在应用程序本身中读取的。
例如,当我构建并运行应用程序时,app-info.plist 会更新,CFBundleVersion
现在有 value 8
,但在模拟器中7
会显示 value。
似乎更新的 app-info.plist 没有在构建过程中使用,而是使用旧版本。
如何确保在我的应用中使用更新后的 app-info.plist?一方面,脚本的执行应该是构建过程中的第一件事,或者另一方面 app-info.plist 应该在构建过程中更新。但是对于两个我都不知道该怎么做......
我在 Project > Buildphases > Add Build Phase > Add Run Script 下添加了自定义脚本。具有以下内容:
shell: /bin/bash Tools/addVersionNumber.sh
工具/addVersionNumber.sh -> 按需要工作
#/bin/bash
# script that should be executed in the build phase
# to set the build number correct
plist="app-folder/app-Info.plist"
## get git information
# git_rev_full_hash=$( git rev-parse HEAD )
git_amount_commits=$( git rev-list HEAD | wc -l )
git_rev_short_hash=$( git rev-parse --short HEAD )
buildRevision="$git_amount_commits: $git_rev_short_hash"
# set build revision ( git short hash - amount of commits )
/usr/libexec/PlistBuddy -c "Set :BuildRevision $buildRevision" $plist""
## build number
buildNumber=$( /usr/libexec/PlistBuddy -c "Print CFBundleVersion" $plist )
buildNumber=$(( $buildNumber + 1 ))
# set new build number
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" $plist
干杯——杰里克