[android][macOS] 바탕화면에 릴리즈용 apk 만들기

릴리즈용 apk 만들려면 안드로이드 스튜디오의 메뉴에서 이것저것 수동으로 해야하는데, apk  만들 일이 잦으면 무지 귀찮다.

이번 프로젝트가 특히 그럴 일이 많아서 스크립트로 만들어서 사용 중이다.

 

안드로이드 스튜디오에서 할 일

먼저 안드로이드 스튜디오에서 자동으로 keystore를 읽어오는 준비를 해야한다.

  1. keystore 파일을 프로젝트 폴더/ 에 둔다. app 폴더와 같은 위치이다.
  2. 역시나 같은 위치에 keystore.properties 파일을 생성한다.
    keyAlias=my_keystore_alias
    keyPassword=my_keystore_key_password
    storeFile=../my_keystore_file_name.jks
    storePassword=my_keystore_store_password
  3. app/build.gradle 을 수정한다.
    apply plugin: 'com.android.application'
    
    def keystorePropertiesFile = rootProject.file("keystore.properties")
    def keystoreProperties = new Properties()
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
    
    android {
        signingConfigs {
            my_keystore {
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }
    
        buildTypes {
            release {
                .
                .
                .
                signingConfig signingConfigs.my_keystore
            }
            debug {
                signingConfig signingConfigs.my_keystore
            }
        }
    }

 

스크립트 파일 작성

스크립트는 macOS 용이라 다른 OS에서 사용하려면 알아서 수정하는 걸로….

 

#! /bin/bash

RED=`tput setaf 1` # 빨간색 표시용
RESET=`tput sgr0` # 빨간색을 기본색으로 되돌리기

echo ""
echo "${RED}@@@@@@@@@@@@@@@ 바탕화면에 apk 만들기 @@@@@@@@@@@@@@@${RESET}"
echo ""

HERE="`dirname "$0"`" # 더블클릭으로 스크립트 실행했을 때, 파일이 있는 경로로 이동부터 해야한다.
cd ${HERE}

rm -rf app/build/outputs/apk/* # 기존 apk 파일 지우기

printf "${RED}############ Release ############${RESET}"
echo ""
bash ./gradlew assembleRelease # 빌드 시작
mv app/build/outputs/apk/release/*.apk ~/Desktop # 바탕화면으로 복사

read -p "${RED}종료하려면 아무 키나 누르세요. 5초 뒤에 자동으로 닫힙니다.${RESET}" -n1 -s -t 5 # 5초 뒤에 자동으로 종료

 

만약 코드에 오류가 있으면 다 잡아주니 안심하고 사용할 수 있다.