1+ #! /bin/bash
2+
3+ # Script to update app version
4+ # Usage: ./scripts/update-version.sh [version] [build]
5+ # Example: ./scripts/update-version.sh 1.1.3 31
6+
7+ CONFIG_FILE=" V2er/Config/Version.xcconfig"
8+
9+ # Colors for output
10+ RED=' \033[0;31m'
11+ GREEN=' \033[0;32m'
12+ YELLOW=' \033[1;33m'
13+ NC=' \033[0m' # No Color
14+
15+ # Function to display current version
16+ show_current_version () {
17+ CURRENT_VERSION=$( grep ' ^MARKETING_VERSION = ' " $CONFIG_FILE " | sed ' s/.*MARKETING_VERSION = //' | xargs)
18+ CURRENT_BUILD=$( grep ' ^CURRENT_PROJECT_VERSION = ' " $CONFIG_FILE " | sed ' s/.*CURRENT_PROJECT_VERSION = //' | xargs)
19+ echo -e " ${YELLOW} Current version: ${NC} $CURRENT_VERSION (build $CURRENT_BUILD )"
20+ }
21+
22+ # Function to update version
23+ update_version () {
24+ local new_version=$1
25+ local new_build=$2
26+
27+ # Update MARKETING_VERSION
28+ sed -i ' ' " s/^MARKETING_VERSION = .*/MARKETING_VERSION = $new_version /" " $CONFIG_FILE "
29+
30+ # Update CURRENT_PROJECT_VERSION
31+ sed -i ' ' " s/^CURRENT_PROJECT_VERSION = .*/CURRENT_PROJECT_VERSION = $new_build /" " $CONFIG_FILE "
32+
33+ echo -e " ${GREEN} ✅ Version updated successfully!${NC} "
34+ }
35+
36+ # Main script
37+ echo -e " ${GREEN} === V2er Version Update Tool ===${NC} \n"
38+
39+ # Show current version
40+ show_current_version
41+
42+ # If no arguments provided, run in interactive mode
43+ if [ $# -eq 0 ]; then
44+ echo " "
45+ read -p " Enter new version (e.g., 1.1.3): " NEW_VERSION
46+ read -p " Enter new build number (e.g., 31): " NEW_BUILD
47+
48+ if [ -z " $NEW_VERSION " ] || [ -z " $NEW_BUILD " ]; then
49+ echo -e " ${RED} ❌ Error: Version and build number are required${NC} "
50+ exit 1
51+ fi
52+ else
53+ # Use provided arguments
54+ NEW_VERSION=$1
55+ NEW_BUILD=$2
56+
57+ if [ -z " $NEW_VERSION " ] || [ -z " $NEW_BUILD " ]; then
58+ echo -e " ${RED} ❌ Error: Usage: $0 <version> <build>${NC} "
59+ echo " Example: $0 1.1.3 31"
60+ exit 1
61+ fi
62+ fi
63+
64+ # Confirm update
65+ echo " "
66+ echo -e " ${YELLOW} Will update to:${NC} $NEW_VERSION (build $NEW_BUILD )"
67+ read -p " Proceed? (y/n): " -n 1 -r
68+ echo " "
69+
70+ if [[ $REPLY =~ ^[Yy]$ ]]; then
71+ update_version " $NEW_VERSION " " $NEW_BUILD "
72+ echo " "
73+ show_current_version
74+ echo " "
75+ echo -e " ${YELLOW} Next steps:${NC} "
76+ echo " 1. Commit the changes: git add -A && git commit -m \" chore: bump version to $NEW_VERSION (build $NEW_BUILD )\" "
77+ echo " 2. Push to trigger release: git push"
78+ else
79+ echo -e " ${RED} ❌ Update cancelled${NC} "
80+ exit 1
81+ fi
0 commit comments