スクリプトでビルド番号をインクリメントするスクリプトを追加する方法を示す他のいくつかの投稿を見つけました。
Xcodeはビルド時にライブラリのファイル名にバージョン番号を挿入できますか?
しかし、私がやりたいのは、ARCHIVEを使用するときに(前と後の両方で)ビルド番号を増やすことだけです。
例:現在のビルド番号が21の場合、[製品]> [アーカイブ]を選択すると、ビルド番号が22に増加し、ビルド番号が22のアーカイブファイルをビルドおよび作成するプロセスが実行され、その後、アーカイブが完了すると、ビルド番号が23に増えます。
次のスクリプトを追加します。投稿した最初のリンクにリストされている例のように、2回実行します。ビルドの最初と最後に1回:
if [ $CONFIGURATION == Release ]; then
echo "Bumping build number..."
plist=${PROJECT_DIR}/${INFOPLIST_FILE}
# increment the build number (ie 115 to 116)
buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")
if [[ "${buildnum}" == "" ]]; then
echo "No build number in $plist"
exit 2
fi
buildnum=$(expr $buildnum + 1)
/usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${plist}"
echo "Bumped build number to $buildnum"
else
echo $CONFIGURATION " build - Not bumping build number."
fi
この回答を始めるきっかけとなった情報について、質問にリンクした質問の作成者に感謝します。
これは@Inafzigerの回答と非常に似ていますが、コードのより簡潔なセットであり、「リリース」のチェックがランタイム変数ではなくXCodeのチェックボックスで行われるという追加の利点があります。
これらの手順を2回実行し、1つを最初に、もう1つを最後にドラッグします(1つは前に実行します)ビルドとビルド後に実行する1つ):
# xcode-build-bump.sh
# @desc Auto-increment the build number every time the project is run.
# @usage
# 1. Select: your Target in Xcode
# 2. Select: Build Phases Tab
# 3. Select: Add Build Phase -> Add Run Script
# 4. Paste code below in to new "Run Script" section
# 5. Drag the "Run Script" below "Link Binaries With Libraries"
# 6. Ensure that your starting build number is set to a whole integer and not a float (e.g. 1, not 1.0)
# 7. Check the checkbox "Run script only when installing"
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
Xcodeには バージョン番号を増やすためのコマンドラインツールagvtool
が含まれています。したがって、PListBuddy
を使用してすべてを手動で行う必要はありません。
xcrun agvtool next-version -all
ビルド番号を増やします。
xcrun agvtool new-marketing-version 2.0
新しいユーザーに表示されるバージョン番号を設定します。
詳細については完全なドキュメント を参照してください。