[Xcode] 날짜와 카운트를 이용한 빌드 번호 스크립트 2
이전 글 [버전과 빌드 번호의 차이란?] 에 있던
빌드 번호를 자동으로 수정해주는 스크립트를 만들었었다.
그런데 스크립트를 사용하다보니 이슈가 하나 생겼다.
이슈는 카운트가 일의 자릿수에서 십의 자릿수로 넘어갈 때
카운트 하나만 증가했지만, 빌드번호가 이전꺼보다는 숫자상으로는 크게 되었다.
(예를 들어 201904059 보다 2019040510 이 숫자가 크다)
앱 빌드를 아카이브할 때 이전에 빌드했던 버전과 같은 버전일 때
빌드번호를 비교해서 빌드번호가 이전 것보단 커야 아카이브를 할 수 있다.
이런 이슈로 인해 스크립트를 수정했다.
#!/bin/bash
buildDay=$(/usr/libexec/PlistBuddy -c "Print buildDay" "$INFOPLIST_FILE")
buildCount=$(/usr/libexec/PlistBuddy -c "Print buildCount" "$INFOPLIST_FILE")
today=$(date +%Y%m%d)
if [ x$buildDay == x ]; then
buildDay=${today}
buildCount=1
printf -v zeroPadBuildCount "%03d" $buildCount
buildNumber=${buildDay}${zeroPadBuildCount}
/usr/libexec/PlistBuddy -c "Add :buildDay string $buildDay" "$INFOPLIST_FILE"
/usr/libexec/PlistBuddy -c "Add :buildCount string $buildCount" "$INFOPLIST_FILE"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
elif [ $buildDay != $today ]; then
buildDay=${today}
buildCount=1
printf -v zeroPadBuildCount "%03d" $buildCount
buildNumber=${buildDay}${zeroPadBuildCount}
/usr/libexec/PlistBuddy -c "Set :buildDay $buildDay" "$INFOPLIST_FILE"
/usr/libexec/PlistBuddy -c "Set :buildCount $buildCount" "$INFOPLIST_FILE"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
else
buildCount=$(($buildCount + 1))
printf -v zeroPadBuildCount "%03d" $buildCount
buildNumber=${buildDay}${zeroPadBuildCount}
/usr/libexec/PlistBuddy -c "Set :buildDay $buildDay" "$INFOPLIST_FILE"
/usr/libexec/PlistBuddy -c "Set :buildCount $buildCount" "$INFOPLIST_FILE"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
fi
수정된 내용은 카운트가 001 에서 999 까지 가도
빌드번호의 자릿수는 같도록 수정하였다.
여담이지만…
Xcode 에서만 쓸 때는 빌드번호가 보기에 괜찮다고 생각했는데…
앱스토어에서 빌드번호를 보니 보기가 좀 별로인 거 같다.
계속 쓸지는 진지하게 고려해봐야겠다.