빌드 오류 수정

This commit is contained in:
hansoo
2025-03-23 21:00:49 +09:00
parent da19495355
commit a837e177ff
5 changed files with 115 additions and 95 deletions

View File

@@ -1,37 +1,6 @@
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
// 버전 관리를 위한 파일 로드 및 함수 정의 // 버전 정보를 직접 설정
def versionPropsFile = file("${rootDir}/version.properties")
def versionProps = new Properties()
// 파일이 존재하면 로드, 없으면 기본값 설정
if (versionPropsFile.exists()) {
versionPropsFile.withInputStream { stream -> versionProps.load(stream) }
} else {
versionProps['versionCode'] = '1'
versionProps['versionName'] = '1.0.0'
versionProps['buildNumber'] = '1'
}
// 버전 코드와 빌드 번호 가져오기
def versionCode = versionProps['versionCode'].toInteger()
def versionName = versionProps['versionName']
def buildNumber = versionProps['buildNumber'].toInteger()
// 릴리즈 빌드 시 버전 코드 증가 함수
def incrementVersionCode() {
versionCode += 1
versionProps['versionCode'] = versionCode.toString()
versionPropsFile.withOutputStream { stream -> versionProps.store(stream, null) }
}
// 빌드 번호 증가 함수
def incrementBuildNumber() {
buildNumber += 1
versionProps['buildNumber'] = buildNumber.toString()
versionPropsFile.withOutputStream { stream -> versionProps.store(stream, null) }
}
android { android {
namespace "com.lovable.zellyfinance" namespace "com.lovable.zellyfinance"
compileSdk rootProject.ext.compileSdkVersion compileSdk rootProject.ext.compileSdkVersion
@@ -39,10 +8,10 @@ android {
applicationId "com.lovable.zellyfinance" applicationId "com.lovable.zellyfinance"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode versionCode versionCode 6
versionName versionName versionName "1.1.1.2"
// 빌드 번호 추가 // 빌드 번호 추가 - BuildConfig 필드로 정의
buildConfigField "int", "BUILD_NUMBER", buildNumber.toString() buildConfigField "int", "BUILD_NUMBER", "6"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions { aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
@@ -50,28 +19,26 @@ android {
ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~'
} }
} }
// 서명 설정 추가
signingConfigs {
release {
storeFile file('/Users/hansoo./Dev/keys/google-key')
storePassword "djqrP1dnl#"
keyAlias "key0"
keyPassword "aplfarm99##"
}
}
buildTypes { buildTypes {
release { release {
minifyEnabled false minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
// 릴리즈 빌드 시 버전 코드와 빌드 번호 증가
doLast {
incrementVersionCode()
incrementBuildNumber()
println "릴리즈 빌드 완료: 버전 코드 = ${versionCode}, 빌드 번호 = ${buildNumber}"
}
} }
debug { debug {
// 디버거 대기 방지 minifyEnabled false
debuggable false debuggable true
jniDebuggable false
// 디버그 빌드 시 빌드 번호만 증가
doLast {
incrementBuildNumber()
println "디버그 빌드 완료: 버전 코드 = ${versionCode}, 빌드 번호 = ${buildNumber}"
}
} }
} }

View File

@@ -0,0 +1,3 @@
buildNumber=6
versionCode=6
versionName=1.1.1.2

View File

@@ -1,7 +1,6 @@
{ {
"versionCode": 1, "versionCode": 6,
"versionName": "1.0.1", "versionName": "1.1.1.2",
"buildNumber": 3, "buildNumber": 6,
"notes": "사용자가 수정한 버전 정보입니다. 이 파일을 편집하여 앱 버전 정보를 변경할 수 있습니다." "notes": "사용자가 수정한 버전 정보입니다. 이 파일을 편집하여 앱 버전 정보를 변경할 수 있습니다."
} }

View File

@@ -1,5 +1,3 @@
buildNumber=6
#Tue Mar 18 00:16:17 KST 2025 versionCode=6
buildNumber=3 versionName=1.1.1.2
versionCode=1
versionName=1.0.1

View File

@@ -45,20 +45,76 @@ esac
# 현재 버전 코드 가져오기 # 현재 버전 코드 가져오기
CURRENT_VERSION_CODE=$(grep -o 'versionCode [0-9]*' android/app/build.gradle | awk '{print $2}') CURRENT_VERSION_CODE=$(grep -o 'versionCode [0-9]*' android/app/build.gradle | awk '{print $2}')
# 버전 코드가 비어있으면 기본값 1로 설정
if [ -z "$CURRENT_VERSION_CODE" ]; then
CURRENT_VERSION_CODE=1
echo -e "${YELLOW}버전 코드가 없어 기본값 1로 설정했습니다.${NC}"
fi
echo -e "${YELLOW}현재 버전 코드: ${CURRENT_VERSION_CODE}${NC}" echo -e "${YELLOW}현재 버전 코드: ${CURRENT_VERSION_CODE}${NC}"
# 현재 버전 이름 가져오기
CURRENT_VERSION_NAME=$(grep -o 'versionName "[^"]*"' android/app/build.gradle | sed 's/versionName "//' | sed 's/"//')
# 버전 이름이 비어있으면 기본값 1.0.0으로 설정
if [ -z "$CURRENT_VERSION_NAME" ]; then
CURRENT_VERSION_NAME="1.0.0"
echo -e "${YELLOW}버전 이름이 없어 기본값 1.0.0으로 설정했습니다.${NC}"
fi
echo -e "${YELLOW}현재 버전 이름: ${CURRENT_VERSION_NAME}${NC}"
# 버전 정보 수정 여부 확인
echo -e "${YELLOW}버전 정보를 수정하시겠습니까? (y/n)${NC}"
read -r MODIFY_VERSION
if [[ "$MODIFY_VERSION" == "y" || "$MODIFY_VERSION" == "Y" ]]; then
# 버전 코드 입력
echo -e "${YELLOW}새 버전 코드를 입력하세요 (현재: ${CURRENT_VERSION_CODE}):${NC}"
read -r NEW_VERSION_CODE_INPUT
if [ -n "$NEW_VERSION_CODE_INPUT" ]; then
NEW_VERSION_CODE=$NEW_VERSION_CODE_INPUT
else
NEW_VERSION_CODE=$CURRENT_VERSION_CODE
fi
# 버전 이름 입력
echo -e "${YELLOW}새 버전 이름을 입력하세요 (현재: ${CURRENT_VERSION_NAME}):${NC}"
read -r NEW_VERSION_NAME_INPUT
if [ -n "$NEW_VERSION_NAME_INPUT" ]; then
VERSION_NAME=$NEW_VERSION_NAME_INPUT
else
VERSION_NAME=$CURRENT_VERSION_NAME
fi
echo -e "${GREEN}버전 정보가 업데이트되었습니다: 버전 코드=${NEW_VERSION_CODE}, 버전 이름=${VERSION_NAME}${NC}"
else
NEW_VERSION_CODE=$CURRENT_VERSION_CODE
VERSION_NAME=$CURRENT_VERSION_NAME
fi
# 빌드 넘버 자동 설정 # 빌드 넘버 자동 설정
BUILD_NUMBER=$CURRENT_VERSION_CODE BUILD_NUMBER=$NEW_VERSION_CODE
echo -e "${GREEN}빌드 넘버가 자동으로 ${BUILD_NUMBER}(으)로 설정되었습니다.${NC}" echo -e "${GREEN}빌드 넘버가 자동으로 ${BUILD_NUMBER}(으)로 설정되었습니다.${NC}"
# 빌드 넘버 수정 여부 확인
echo -e "${YELLOW}빌드 넘버를 수정하시겠습니까? (y/n)${NC}"
read -r MODIFY_BUILD
if [[ "$MODIFY_BUILD" == "y" || "$MODIFY_BUILD" == "Y" ]]; then
echo -e "${YELLOW}새 빌드 넘버를 입력하세요 (현재: ${BUILD_NUMBER}):${NC}"
read -r NEW_BUILD_NUMBER
if [ -n "$NEW_BUILD_NUMBER" ]; then
BUILD_NUMBER=$NEW_BUILD_NUMBER
echo -e "${GREEN}빌드 넘버가 ${BUILD_NUMBER}(으)로 설정되었습니다.${NC}"
fi
fi
# 릴리즈 빌드인 경우 버전 코드 증가 여부 확인 # 릴리즈 빌드인 경우 버전 코드 증가 여부 확인
NEW_VERSION_CODE=$CURRENT_VERSION_CODE
if [[ "$BUILD_TYPE" == "release-aab" || "$BUILD_TYPE" == "release-apk" ]]; then if [[ "$BUILD_TYPE" == "release-aab" || "$BUILD_TYPE" == "release-apk" ]]; then
echo -e "${YELLOW}버전 코드를 증가시키겠습니까? 현재 버전 코드: ${CURRENT_VERSION_CODE} (y/n)${NC}" # 버전 정보를 이미 수정했다면 다시 묻지 않음
read -r INCREASE_VERSION if [[ "$MODIFY_VERSION" != "y" && "$MODIFY_VERSION" != "Y" ]]; then
if [[ "$INCREASE_VERSION" == "y" || "$INCREASE_VERSION" == "Y" ]]; then echo -e "${YELLOW}버전 코드를 증가시키겠습니까? 현재 버전 코드: ${NEW_VERSION_CODE} (y/n)${NC}"
NEW_VERSION_CODE=$((CURRENT_VERSION_CODE + 1)) read -r INCREASE_VERSION
echo -e "${GREEN}버전 코드가 ${NEW_VERSION_CODE}(으)로 증가됩니다.${NC}" if [[ "$INCREASE_VERSION" == "y" || "$INCREASE_VERSION" == "Y" ]]; then
NEW_VERSION_CODE=$((NEW_VERSION_CODE + 1))
echo -e "${GREEN}버전 코드가 ${NEW_VERSION_CODE}(으)로 증가됩니다.${NC}"
fi
fi fi
# 키스토어 정보 자동 설정 # 키스토어 정보 자동 설정
@@ -78,25 +134,18 @@ fi
echo -e "${YELLOW}Zellyy Finance 앱 빌드 시작 (${BUILD_TYPE}, 빌드 넘버: ${BUILD_NUMBER}, 버전 코드: ${NEW_VERSION_CODE}): $(date)${NC}" echo -e "${YELLOW}Zellyy Finance 앱 빌드 시작 (${BUILD_TYPE}, 빌드 넘버: ${BUILD_NUMBER}, 버전 코드: ${NEW_VERSION_CODE}): $(date)${NC}"
# 캐시 삭제 # 버전 정보를 파일에 저장하는 함수
echo -e "${YELLOW}빌드 캐시 삭제 중...${NC}" save_version_info() {
rm -rf node_modules/.vite # version.properties 파일 업데이트 - 루트 디렉토리와 app 디렉토리 모두에 저장
rm -rf android/app/build echo "buildNumber=$BUILD_NUMBER" > android/version.properties
rm -rf android/.gradle echo "versionCode=$NEW_VERSION_CODE" >> android/version.properties
rm -rf dist echo "versionName=$VERSION_NAME" >> android/version.properties
echo -e "${GREEN}빌드 캐시가 삭제되었습니다.${NC}"
# 빌드 넘버 및 버전 코드 업데이트 # app 디렉토리에도 동일한 파일 복사
echo -e "${YELLOW}버전 정보 파일 업데이트 중...${NC}" cp android/version.properties android/app/version.properties
# version.properties 파일 업데이트 # app_version.json 파일 업데이트
echo "buildNumber=$BUILD_NUMBER" > android/version.properties cat > android/app_version.json << EOF
echo "versionCode=$NEW_VERSION_CODE" >> android/version.properties
echo "versionName=$(grep -o 'versionName "[^"]*"' android/app/build.gradle | sed 's/versionName "//' | sed 's/"//')" >> android/version.properties
# app_version.json 파일 업데이트
VERSION_NAME=$(grep -o 'versionName "[^"]*"' android/app/build.gradle | sed 's/versionName "//' | sed 's/"//')
cat > android/app_version.json << EOF
{ {
"versionCode": $NEW_VERSION_CODE, "versionCode": $NEW_VERSION_CODE,
"versionName": "$VERSION_NAME", "versionName": "$VERSION_NAME",
@@ -105,15 +154,19 @@ cat > android/app_version.json << EOF
} }
EOF EOF
# build.gradle 파일 업데이트 (이전 방식 유지) echo -e "${GREEN}버전 정보가 파일에 저장되었습니다: 버전 코드=${NEW_VERSION_CODE}, 버전 이름=${VERSION_NAME}, 빌드 넘버=${BUILD_NUMBER}${NC}"
sed -i '' "s/buildConfigField \"int\", \"BUILD_NUMBER\", \"[0-9]*\"/buildConfigField \"int\", \"BUILD_NUMBER\", \"$BUILD_NUMBER\"/" android/app/build.gradle }
sed -i '' "s/versionCode [0-9]*/versionCode $NEW_VERSION_CODE/" android/app/build.gradle
if [ $? -ne 0 ]; then # 빌드 시작 전에 버전 정보 저장
echo -e "${RED}버전 정보 파일 업데이트 실패. 빌드 프로세스를 중단합니다.${NC}" save_version_info
exit 1
fi # 캐시 삭제
echo -e "${GREEN}빌드 넘버가 ${BUILD_NUMBER}(으)로, 버전 코드가 ${NEW_VERSION_CODE}(으)로 업데이트되었습니다.${NC}" echo -e "${YELLOW}빌드 캐시 삭제 중...${NC}"
rm -rf node_modules/.vite
rm -rf android/app/build
rm -rf android/.gradle
rm -rf dist
echo -e "${GREEN}빌드 캐시가 삭제되었습니다.${NC}"
# 1. 웹 앱 빌드 # 1. 웹 앱 빌드
echo -e "${YELLOW}1. 웹 앱 빌드 중...${NC}" echo -e "${YELLOW}1. 웹 앱 빌드 중...${NC}"