diff --git a/android/app/build.gradle b/android/app/build.gradle index 0f0fc7b..20cd809 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,37 +1,6 @@ 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 { namespace "com.lovable.zellyfinance" compileSdk rootProject.ext.compileSdkVersion @@ -39,10 +8,10 @@ android { applicationId "com.lovable.zellyfinance" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode versionCode - versionName versionName - // 빌드 번호 추가 - buildConfigField "int", "BUILD_NUMBER", buildNumber.toString() + versionCode 6 + versionName "1.1.1.2" + // 빌드 번호 추가 - BuildConfig 필드로 정의 + buildConfigField "int", "BUILD_NUMBER", "6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // 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:!*~' } } + + // 서명 설정 추가 + signingConfigs { + release { + storeFile file('/Users/hansoo./Dev/keys/google-key') + storePassword "djqrP1dnl#" + keyAlias "key0" + keyPassword "aplfarm99##" + } + } + buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - - // 릴리즈 빌드 시 버전 코드와 빌드 번호 증가 - doLast { - incrementVersionCode() - incrementBuildNumber() - println "릴리즈 빌드 완료: 버전 코드 = ${versionCode}, 빌드 번호 = ${buildNumber}" - } + signingConfig signingConfigs.release } debug { - // 디버거 대기 방지 - debuggable false - jniDebuggable false - - // 디버그 빌드 시 빌드 번호만 증가 - doLast { - incrementBuildNumber() - println "디버그 빌드 완료: 버전 코드 = ${versionCode}, 빌드 번호 = ${buildNumber}" - } + minifyEnabled false + debuggable true } } diff --git a/android/app/version.properties b/android/app/version.properties new file mode 100644 index 0000000..1072dca --- /dev/null +++ b/android/app/version.properties @@ -0,0 +1,3 @@ +buildNumber=6 +versionCode=6 +versionName=1.1.1.2 diff --git a/android/app_version.json b/android/app_version.json index 32a2735..66d0d53 100644 --- a/android/app_version.json +++ b/android/app_version.json @@ -1,7 +1,6 @@ - { - "versionCode": 1, - "versionName": "1.0.1", - "buildNumber": 3, + "versionCode": 6, + "versionName": "1.1.1.2", + "buildNumber": 6, "notes": "사용자가 수정한 버전 정보입니다. 이 파일을 편집하여 앱 버전 정보를 변경할 수 있습니다." } diff --git a/android/version.properties b/android/version.properties index 50940e9..1072dca 100644 --- a/android/version.properties +++ b/android/version.properties @@ -1,5 +1,3 @@ - -#Tue Mar 18 00:16:17 KST 2025 -buildNumber=3 -versionCode=1 -versionName=1.0.1 +buildNumber=6 +versionCode=6 +versionName=1.1.1.2 diff --git a/build-apk.sh b/build-apk.sh index 58998b7..ab7b0b8 100755 --- a/build-apk.sh +++ b/build-apk.sh @@ -45,20 +45,76 @@ esac # 현재 버전 코드 가져오기 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}" +# 현재 버전 이름 가져오기 +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 "${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 - echo -e "${YELLOW}버전 코드를 증가시키겠습니까? 현재 버전 코드: ${CURRENT_VERSION_CODE} (y/n)${NC}" - read -r INCREASE_VERSION - if [[ "$INCREASE_VERSION" == "y" || "$INCREASE_VERSION" == "Y" ]]; then - NEW_VERSION_CODE=$((CURRENT_VERSION_CODE + 1)) - echo -e "${GREEN}버전 코드가 ${NEW_VERSION_CODE}(으)로 증가됩니다.${NC}" + # 버전 정보를 이미 수정했다면 다시 묻지 않음 + if [[ "$MODIFY_VERSION" != "y" && "$MODIFY_VERSION" != "Y" ]]; then + echo -e "${YELLOW}버전 코드를 증가시키겠습니까? 현재 버전 코드: ${NEW_VERSION_CODE} (y/n)${NC}" + read -r INCREASE_VERSION + if [[ "$INCREASE_VERSION" == "y" || "$INCREASE_VERSION" == "Y" ]]; then + NEW_VERSION_CODE=$((NEW_VERSION_CODE + 1)) + echo -e "${GREEN}버전 코드가 ${NEW_VERSION_CODE}(으)로 증가됩니다.${NC}" + fi fi # 키스토어 정보 자동 설정 @@ -78,25 +134,18 @@ fi echo -e "${YELLOW}Zellyy Finance 앱 빌드 시작 (${BUILD_TYPE}, 빌드 넘버: ${BUILD_NUMBER}, 버전 코드: ${NEW_VERSION_CODE}): $(date)${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}" - -# 빌드 넘버 및 버전 코드 업데이트 -echo -e "${YELLOW}버전 정보 파일 업데이트 중...${NC}" - -# version.properties 파일 업데이트 -echo "buildNumber=$BUILD_NUMBER" > android/version.properties -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 +# 버전 정보를 파일에 저장하는 함수 +save_version_info() { + # version.properties 파일 업데이트 - 루트 디렉토리와 app 디렉토리 모두에 저장 + echo "buildNumber=$BUILD_NUMBER" > android/version.properties + echo "versionCode=$NEW_VERSION_CODE" >> android/version.properties + echo "versionName=$VERSION_NAME" >> android/version.properties + + # app 디렉토리에도 동일한 파일 복사 + cp android/version.properties android/app/version.properties + + # app_version.json 파일 업데이트 + cat > android/app_version.json << EOF { "versionCode": $NEW_VERSION_CODE, "versionName": "$VERSION_NAME", @@ -105,15 +154,19 @@ cat > android/app_version.json << EOF } EOF -# build.gradle 파일 업데이트 (이전 방식 유지) -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 + echo -e "${GREEN}버전 정보가 파일에 저장되었습니다: 버전 코드=${NEW_VERSION_CODE}, 버전 이름=${VERSION_NAME}, 빌드 넘버=${BUILD_NUMBER}${NC}" +} -if [ $? -ne 0 ]; then - echo -e "${RED}버전 정보 파일 업데이트 실패. 빌드 프로세스를 중단합니다.${NC}" - exit 1 -fi -echo -e "${GREEN}빌드 넘버가 ${BUILD_NUMBER}(으)로, 버전 코드가 ${NEW_VERSION_CODE}(으)로 업데이트되었습니다.${NC}" +# 빌드 시작 전에 버전 정보 저장 +save_version_info + +# 캐시 삭제 +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. 웹 앱 빌드 echo -e "${YELLOW}1. 웹 앱 빌드 중...${NC}"