ビルドフェーズに実行スクリプトがあり、リリースビルドを実行するたびにビルドバージョンを自動インクリメントします。期待どおりにinfo.plistファイルとroot.plistファイルをインクリメントします。ただし、Organizerでは、アーカイブにリストされているバージョンは、常にスクリプトを実行する前のバージョンの番号です(予想より1つ少ない)。実行スクリプトを、ターゲットの依存関係の後、ソースのコンパイル前に実行するように注文しました。
これが私のビルドスクリプトです。
if [ $CONFIGURATION == Release ]; then
echo "Bumping build number..."
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
productVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
IFS='.'
set $productVersion
MAJOR_VERSION="${1}.${2}"
buildNewVersion="${MAJOR_VERSION}.${buildNumber}"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $buildNewVersion" "$INFOPLIST_FILE"
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:9:DefaultValue $buildNewVersion" SmartView/Resources/Settings.bundle/Root.plist
fib