この記事では、日付とカウンターに基づくカスタム フォーマットを使用して、Xcode でビルド番号をビルド毎に自動で増やす手順を説明します。下図の様にmacOS AppのAbout Menuで表示されるカッコ内の数字1がビルド番号です。
-
プロジェクトに2つファイル(versin.sh, Config.xcconfigを追加。配置場所は
$SRCROOT/$PRODUCT_NAME
. SRCROOTはxcodeprojディレクトリと同レベル。#!/bin/bash # version.sh # This script is designed to increment the build number consistently across all # targets. # Navigating to the 'PRODUCT_NAME' directory inside the source root that xcodeproj dirctory is placed at. cd "$SRCROOT/$PRODUCT_NAME" # Get the current date in the format "YYYYMMDD". current_date=$(date "+%Y%m%d") # Parse the 'Config.xcconfig' file to retrieve the previous build number. # The 'awk' command is used to find the line containing "BUILD_NUMBER" # and the 'tr' command is used to remove any spaces. previous_build_number=$(awk -F "=" '/BUILD_NUMBER/ {print $2}' Config.xcconfig | tr -d ' ') # Extract the date part and the counter part from the previous build number. previous_date="${previous_build_number:0:8}" counter="${previous_build_number:8}" # If the current date matches the date from the previous build number, # increment the counter. Otherwise, reset the counter to 1. new_counter=$((current_date == previous_date ? counter + 1 : 1)) # Combine the current date and the new counter to create the new build number. new_build_number="${current_date}${new_counter}" # Use 'sed' command to replace the previous build number with the new build # number in the 'Config.xcconfig' file. sed -i -e "/BUILD_NUMBER =/ s/= .*/= $new_build_number/" Config.xcconfig # Remove the backup file created by 'sed' command. rm -f Config.xcconfig-e
もう一つは
// Config.xcconfig // Configuration settings file format documentation can be found at: // https://help.apple.com/xcode/#/dev745c5c974 // この変数名はXcodeと衝突しなければ任意 VERSION = 1.0.1 BUILD_NUMBER = 202306211
-
Project Settings, Info -> Configuration & Targets Settings, Build Settings -> Versioning 図ではcarbonwatchukなるProject, TargetsのConfigurationの例を示している。
-
Menu Product -> Scheme -> Edit Scheme -> Build -> Pre-actions
cd "$SRCROOT/$PRODUCT_NAME" source version.sh
本記事の図のいくつかは下記リンクより拝借している。
Automating Build Number Increments in Xcode with Custom Format Jun 22, 2023