iOS用のアプリケーションをアーカイブするビルドについてのみ、ビルド日付とビルド番号をInfo.plistファイルに自動的に追加したいと考えています。
私のスクリプトは次のとおりです
#!/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を使用してプロジェクトをビルドするのに間に合わなかったことがわかります。
これに対する解決策はありますか?
これは比較的簡単に修正できるように思えますが、このトピックに投稿された記事でこの問題について質問している人がそれほど多くないことに驚いています。