Version_up_git in flutter
필자가 가끔 사용하는 버전업 관련 스크립트 입니다. 예시 파일은 사용코드sh에서 확인가능합니다.
활용방법
- 단독 파일로 저장하여서, 프로젝트 루트에 복사하여 사용하는 방법
- alias 등록하여 단축명령어로 사용하는 방법
개인적으로 2번으로 등록 사용합니다.
1번 사용방법
- 파일을 프로젝트 루트에 복사합니다.
- git를 우선 push 를 해야합니다. 그리고 push 기록을 가지고 1 개씩 수정을 합니다.
실행방법
- 기본 실행 (patch 증가)
./update_version.sh
이전: 1.0.0+13
결과: 1.0.1+14 - 마이너 버전 증가
./update_version.sh minor
이전: 1.0.1+14
결과: 1.1.0+15 - 메이저 버전 증가
./update_version.sh major
이전: 1.1.0+15
결과: 2.0.0+16
사용코드 sh
예시저장 update_version.sh
#!/bin/bash
# 사용법:
# ./update_version.sh [major|minor|patch]
# 기본값: patch 증가
INCREMENT=${1:-patch}
PUBSPEC_FILE="./pubspec.yaml"
if [ ! -f "$PUBSPEC_FILE" ]; then
echo "❌ Error: pubspec.yaml not found."
exit 1
fi
BUILD_NUMBER=$(git rev-list --all --count)
if [ $? -ne 0 ]; then
echo "❌ Error: Git commit count failed."
exit 1
fi
# 현재 version 파싱
CURRENT_VERSION_LINE=$(grep '^version: ' "$PUBSPEC_FILE")
CURRENT_VERSION=$(echo "$CURRENT_VERSION_LINE" | cut -d ' ' -f2)
BASE_VERSION=$(echo "$CURRENT_VERSION" | cut -d '+' -f1)
IFS='.' read -r MAJOR MINOR PATCH <<< "$BASE_VERSION"
case "$INCREMENT" in
major)
MAJOR=$((MAJOR + 1))
MINOR=0
PATCH=0
;;
minor)
MINOR=$((MINOR + 1))
PATCH=0
;;
patch)
PATCH=$((PATCH + 1))
;;
*)
echo "❌ Error: Unknown increment type '$INCREMENT'. Use: major, minor, or patch."
exit 1
;;
esac
NEW_VERSION="${MAJOR}.${MINOR}.${PATCH}+${BUILD_NUMBER}"
# pubspec.yaml 수정
if [[ "$OSTYPE" == "darwin"* ]]; then
sed -i.bak "s/^version: .*/version: $NEW_VERSION/" "$PUBSPEC_FILE" && rm "$PUBSPEC_FILE.bak"
else
sed -i "s/^version: .*/version: $NEW_VERSION/" "$PUBSPEC_FILE"
fi
echo "✅ Version updated to: $NEW_VERSION"
# Flutter 빌드
flutter build apk || { echo "❌ Failed to build APK"; exit 1; }
flutter build ipa --export-method ad-hoc || { echo "❌ Failed to build IPA"; exit 1; }
echo "🚀 Build complete: $NEW_VERSION"
flutter build apk 및 ipa build 실행 <- 이 명령어를 실행하는 이유는
Android의local.properties 및 iOS의flutter_export_environment.sh의 버전 관련 정보를 갱신하기 위함
Alias 등록하여 사용하는 방법
- 사용자 홈에 폴더를 만들고
mkdir -p ~/scripts
nano ~/scripts/flutter_version_update.sh
- 실행권한을 주고
chmod +x ~/scripts/flutter_version_update.sh
- ~/.zshrc에 에 alias 연결합니다. (vscode -> code ~/.zshrc)
alias fvup="~/scripts/flutter_version_update.sh"
alias fvupm="~/scripts/flutter_version_update.sh major"
alias fvupi="~/scripts/flutter_version_update.sh minor"
- zshrc 를 reload 해주고
source ~/.zshrc
이후 프로젝트 터미널에서 상황에 맞는 것을 사용하면 된다.
단, git commit and push 를 먼저하는 것은 잊지말고!
해당 방법으로 사용하기 편한 sh 파일을 만들어서 연결해서 사용합니다.