@@ -8,6 +8,17 @@ cd "$REPO_ROOT"
88PROJECT_FILE=" kutuk.xcodeproj/project.pbxproj"
99PLIST_FILES=" kutuk/Info.plist kutukTests/Info.plist kutukUITests/Info.plist"
1010
11+ read_build_setting () {
12+ setting_name=" $1 "
13+ sed -n " s/^[[:space:]]*${setting_name} = \\ (.*\\ );/\\ 1/p" " $PROJECT_FILE " | head -n1
14+ }
15+
16+ read_plist_value () {
17+ plist_file=" $1 "
18+ plist_key=" $2 "
19+ /usr/libexec/PlistBuddy -c " Print :$plist_key " " $plist_file "
20+ }
21+
1122if [ " ${1:- } " = " " ]; then
1223 echo " Usage: $0 <marketing-version> [build-number]" >&2
1324 exit 1
@@ -23,8 +34,8 @@ case "$NEW_VERSION" in
2334 ;;
2435esac
2536
26- CURRENT_VERSION=" $( rg -o ' MARKETING_VERSION = [^;]+ ' " $PROJECT_FILE " | head -n1 | sed ' s/MARKETING_VERSION = // ' ) "
27- CURRENT_BUILD=" $( rg -o ' CURRENT_PROJECT_VERSION = [^;]+ ' " $PROJECT_FILE " | head -n1 | sed ' s/CURRENT_PROJECT_VERSION = // ' ) "
37+ CURRENT_VERSION=" $( read_build_setting MARKETING_VERSION) "
38+ CURRENT_BUILD=" $( read_build_setting CURRENT_PROJECT_VERSION) "
2839
2940case " $CURRENT_BUILD " in
3041 ' ' | * [!0-9]* )
@@ -60,8 +71,13 @@ export CURRENT_VERSION CURRENT_BUILD NEW_VERSION NEXT_BUILD
6071perl -0pi -e ' s/MARKETING_VERSION = \Q$ENV{CURRENT_VERSION}\E;/MARKETING_VERSION = $ENV{NEW_VERSION};/g; s/CURRENT_PROJECT_VERSION = \Q$ENV{CURRENT_BUILD}\E;/CURRENT_PROJECT_VERSION = $ENV{NEXT_BUILD};/g' " $PROJECT_FILE "
6172
6273for plist in $PLIST_FILES ; do
63- /usr/libexec/PlistBuddy -c " Set :CFBundleShortVersionString $NEW_VERSION " " $plist "
64- /usr/libexec/PlistBuddy -c " Set :CFBundleVersion $NEXT_BUILD " " $plist "
74+ if [ " $( read_plist_value " $plist " CFBundleShortVersionString) " != " $NEW_VERSION " ]; then
75+ /usr/libexec/PlistBuddy -c " Set :CFBundleShortVersionString $NEW_VERSION " " $plist "
76+ fi
77+
78+ if [ " $( read_plist_value " $plist " CFBundleVersion) " != " $NEXT_BUILD " ]; then
79+ /usr/libexec/PlistBuddy -c " Set :CFBundleVersion $NEXT_BUILD " " $plist "
80+ fi
6581done
6682
6783echo " Updated marketing version: $CURRENT_VERSION -> $NEW_VERSION "
0 commit comments